zoukankan      html  css  js  c++  java
  • 在Fedora10上安装MySQL5.0.18,告捷!

    又一次安MySQL了,为什么又呢,因为前面成功那次算配置,即配置Fedora10自带的MySQL,这个还不算自己安装的,所以有必要再安装一次,以后还装也有可能,换操作系统,换MySql版本都可能这样做。

    前几次安装失败的精力总算没白花,这会安装顺利多了。当然,这篇网文的帮助也是不小的:http://www.hackbase.com/tech/2011-10-28/65455.html

    我安装的mysql-5.0.18.tar.gz可以从这里下载:http://pan.baidu.com/share/link?shareid=3134485043&uk=34256769

    正文开始了,首先解压。

    [root@Dawalixi hy]# tar xvzf mysql-5.0.18.tar.gz
    ...
    mysql-5.0.18/server-tools/instance-manager/buffer.h
    mysql-5.0.18/server-tools/instance-manager/buffer.cc
    mysql-5.0.18/server-tools/instance-manager/parse.cc
    mysql-5.0.18/server-tools/instance-manager/parse.h
    mysql-5.0.18/server-tools/instance-manager/guardian.cc
    mysql-5.0.18/server-tools/instance-manager/guardian.h
    mysql-5.0.18/server-tools/instance-manager/parse_output.cc
    mysql-5.0.18/server-tools/instance-manager/parse_output.h
    mysql-5.0.18/server-tools/instance-manager/mysql_manager_error.h
    mysql-5.0.18/server-tools/instance-manager/portability.h

    看看解压完的目录
    [root@Dawalixi hy]# ls
    4.sh    Desktop    Download  mysql-5.0.18         Pictures  Templates
    backup  Documents  Music     mysql-5.0.18.tar.gz  Public    Videos
    [root@Dawalixi hy]#

    进行设置,utf8一项很重要,因为这个数据库将来要容纳中文
    [root@Dawalixi mysql-5.0.18]# ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all
    ...
    config.status: creating read/Makefile
    config.status: creating rem/Makefile
    config.status: creating row/Makefile
    config.status: creating srv/Makefile
    config.status: creating sync/Makefile
    config.status: creating thr/Makefile
    config.status: creating trx/Makefile
    config.status: creating usr/Makefile
    config.status: creating ib_config.h
    config.status: ib_config.h is unchanged
    config.status: executing depfiles commands

    MySQL has a Web site at http://www.mysql.com/ which carries details on the
    latest release, upcoming features, and other information to make your
    work or play with MySQL more productive. There you can also find
    information about mailing lists for MySQL discussion.

    Remember to check the platform specific part of the reference manual for
    hints about installing MySQL on your platform. Also have a look at the
    files in the Docs directory.

    Thank you for choosing MySQL!

    开始编译
    [root@Dawalixi mysql-5.0.18]# make
    ...
    ".deps/parse_output.Tpo"; exit 1; fi
    /bin/sh ../../libtool --preserve-dup-deps --mode=link g++  -O3 -DDBUG_OFF    -fno-implicit-templates -fno-exceptions -fno-rtti  -rdynamic  -o mysqlmanager  command.o mysqlmanager.o manager.o log.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o messages.o commands.o instance.o instance_map.o instance_options.o buffer.o parse.o guardian.o parse_output.o liboptions.a libnet.a ../../vio/libvio.a ../../mysys/libmysys.a ../../strings/libmystrings.a ../../dbug/libdbug.a -lz -lpthread -lcrypt -lnsl -lm  -lpthread
    mkdir .libs
    g++ -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysqlmanager command.o mysqlmanager.o manager.o log.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o messages.o commands.o instance.o instance_map.o instance_options.o buffer.o parse.o guardian.o parse_output.o  liboptions.a libnet.a ../../vio/libvio.a ../../mysys/libmysys.a ../../strings/libmystrings.a ../../dbug/libdbug.a -lz -lpthread -lcrypt -lnsl -lm -lpthread
    make[3]: Leaving directory `/home/hy/mysql-5.0.18/server-tools/instance-manager'
    make[3]: Entering directory `/home/hy/mysql-5.0.18/server-tools'
    make[3]: Nothing to be done for `all-am'.
    make[3]: Leaving directory `/home/hy/mysql-5.0.18/server-tools'
    make[2]: Leaving directory `/home/hy/mysql-5.0.18/server-tools'
    make[1]: Leaving directory `/home/hy/mysql-5.0.18'

    安装了!
    [root@Dawalixi mysql-5.0.18]# make install
    ...
    make[2]: Leaving directory `/home/hy/mysql-5.0.18/support-files'
    Making install in server-tools
    make[2]: Entering directory `/home/hy/mysql-5.0.18/server-tools'
    Making install in instance-manager
    make[3]: Entering directory `/home/hy/mysql-5.0.18/server-tools/instance-manager'
    make[4]: Entering directory `/home/hy/mysql-5.0.18/server-tools/instance-manager'
    test -z "/usr/local/mysql/libexec" || mkdir -p -- . "/usr/local/mysql/libexec"
      /bin/sh ../../libtool --preserve-dup-deps --mode=install /usr/bin/install -c 'mysqlmanager' '/usr/local/mysql/libexec/mysqlmanager'
    /usr/bin/install -c mysqlmanager /usr/local/mysql/libexec/mysqlmanager
    make[4]: Nothing to be done for `install-data-am'.
    make[4]: Leaving directory `/home/hy/mysql-5.0.18/server-tools/instance-manager'
    make[3]: Leaving directory `/home/hy/mysql-5.0.18/server-tools/instance-manager'
    make[3]: Entering directory `/home/hy/mysql-5.0.18/server-tools'
    make[4]: Entering directory `/home/hy/mysql-5.0.18/server-tools'
    make[4]: Nothing to be done for `install-exec-am'.
    make[4]: Nothing to be done for `install-data-am'.
    make[4]: Leaving directory `/home/hy/mysql-5.0.18/server-tools'
    make[3]: Leaving directory `/home/hy/mysql-5.0.18/server-tools'
    make[2]: Leaving directory `/home/hy/mysql-5.0.18/server-tools'
    make[1]: Leaving directory `/home/hy/mysql-5.0.18'

    增加mysql组和mysql用户
    [root@Dawalixi mysql-5.0.18]# groupadd mysql
    [root@Dawalixi mysql-5.0.18]# useradd -g mysql mysql

    进入mysql的安装目录
    [root@Dawalixi mysql-5.0.18]# cd /usr/local/mysql
    [root@Dawalixi mysql]# ls
    bin  include  info  lib  libexec  man  mysql-test  share  sql-bench

    进入share目录是想得到my.cnf
    [root@Dawalixi mysql]# cd share/
    [root@Dawalixi share]# ls
    mysql
    [root@Dawalixi share]# cd mysql/
    [root@Dawalixi mysql]# ls
    binary-configure      italian                         ndb-config-2-node.ini
    charsets              japanese                        norwegian
    czech                 korean                          norwegian-ny
    danish                mi_test_all                     polish
    dutch                 mi_test_all.res                 portuguese
    english               my-huge.cnf                     romanian
    errmsg.txt            my-innodb-heavy-4G.cnf          russian
    estonian              my-large.cnf                    serbian
    fill_help_tables.sql  my-medium.cnf                   slovak
    french                my-small.cnf                    spanish
    german                mysql_fix_privilege_tables.sql  swedish
    greek                 mysql-log-rotate                ukrainian
    hungarian             mysql.server
    [root@Dawalixi mysql]# vi my-medium.cnf #这一步就是看看,没改什么

    拷贝mysql配置文件,2G以下内存选择my.medium.cnf,如果有原来的选择覆盖。
    [root@Dawalixi mysql]# cp my-medium.cnf  /etc/my.cnf
    cp: overwrite `/etc/my.cnf'? y

    下面进行数据表的安装
    [root@Dawalixi mysql]# cd /usr/local/mysql/bin
    [root@Dawalixi bin]# ls
    comp_err           mysql_config                mysql_setpermission
    innochecksum       mysql_convert_table_format  mysqlshow
    msql2mysql         mysql_create_system_tables  mysql_tableinfo
    myisamchk          mysqld_multi                mysqltest
    myisam_ftdump      mysqld_safe                 mysqltestmanagerc
    myisamlog          mysqldump                   mysqltestmanager-pwgen
    myisampack         mysqldumpslow               mysql_tzinfo_to_sql
    my_print_defaults  mysql_explain_log           mysql_waitpid
    mysql              mysql_find_rows             mysql_zap
    mysqlaccess        mysql_fix_extensions        perror
    mysqladmin         mysql_fix_privilege_tables  replace
    mysqlbinlog        mysqlhotcopy                resolveip
    mysqlbug           mysqlimport                 resolve_stack_dump
    mysqlcheck         mysql_install_db
    mysql_client_test  mysql_secure_installation
    [root@Dawalixi bin]# ./mysql_install_db --user=mysql

    Installing all prepared tables
    Fill help tables

    To start mysqld at boot time you have to copy support-files/mysql.server
    to the right place for your system

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /usr/local/mysql/bin/mysqladmin -u root password 'new-password'
    /usr/local/mysql/bin/mysqladmin -u root -h Dawalixi password 'new-password'
    See the manual for more instructions.

    You can start the MySQL daemon with:
    cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

    You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
    cd sql-bench ; perl run-all-tests

    Please report any problems with the /usr/local/mysql/bin/mysqlbug script!

    The latest information about MySQL is available on the web at
    http://www.mysql.com
    Support MySQL by buying support/licenses at https://order.mysql.com

    下面要把mysql添加到系统服务中
    [root@Dawalixi bin]# pwd
    /usr/local/mysql/bin
    [root@Dawalixi bin]# cd /usr/local/mysql/share/mysql/
    [root@Dawalixi mysql]# ls
    binary-configure      italian                         ndb-config-2-node.ini
    charsets              japanese                        norwegian
    czech                 korean                          norwegian-ny
    danish                mi_test_all                     polish
    dutch                 mi_test_all.res                 portuguese
    english               my-huge.cnf                     romanian
    errmsg.txt            my-innodb-heavy-4G.cnf          russian
    estonian              my-large.cnf                    serbian
    fill_help_tables.sql  my-medium.cnf                   slovak
    french                my-small.cnf                    spanish
    german                mysql_fix_privilege_tables.sql  swedish
    greek                 mysql-log-rotate                ukrainian
    hungarian             mysql.server
    [root@Dawalixi mysql]# cp mysql.server /etc/init.d/mysqld

    现在可以使用系统服务了,不做这一步下一步设置密码也跑不起来。
    [root@Dawalixi bin]# service mysqld start
    Starting MySQL                                             [  OK  ]

    下面给root用户设置密码
    [root@Dawalixi mysql]# cd /usr/local/mysql/bin
    [root@Dawalixi bin]# ./mysqladmin -u root password '123456'

    进行数据库授权,需要提醒的是,只要授权一次,root的密码必须重设一次,切记。
    [root@Dawalixi bin]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 10
    Server version: 5.0.18-log

    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> grant all privileges on *.* to root@'%' identified by "root";
    Query OK, 0 rows affected (0.01 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> grant select,update,insert,delete,create on *.* to root@192.168.0.100 identified by "root";  #注意这里比上回增加了create,这是为了建表用的
    Query OK, 0 rows affected (0.01 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)

    mysql> quit
    Bye

    下面开始重设密码
    [root@Dawalixi bin]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 11
    Server version: 5.0.18-log

    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> use mysql
    Database changed
    mysql> update user set password=password('12345678') where user='root';
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 4  Changed: 2  Warnings: 0

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> quit
    Bye
    [root@Dawalixi bin]#

    打开防火墙对3306端口的限制
    [root@Dawalixi bin]# vi /etc/sysconfig/iptables
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  #这一行是我新加的
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT

    重启防火墙
    [root@Dawalixi bin]# service iptables restart
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    iptables: Applying firewall rules:                         [  OK  ]
    [root@Dawalixi bin]#

    此时端口应该对3306开放了
    [root@Dawalixi bin]# netstat -tlnpu
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      19227/mysqld        
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1477/rpcbind        
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1836/sshd           
    tcp        0      0 0.0.0.0:57846               0.0.0.0:*                   LISTEN      1490/rpc.statd      
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1931/cupsd          
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1859/sendmail: acce
    tcp        0      0 :::111                      :::*                        LISTEN      1477/rpcbind        
    tcp        0      0 :::22                       :::*                        LISTEN      1836/sshd           
    udp        0      0 0.0.0.0:804                 0.0.0.0:*                               1477/rpcbind        
    udp        0      0 0.0.0.0:45617               0.0.0.0:*                               1490/rpc.statd      
    udp        0      0 0.0.0.0:818                 0.0.0.0:*                               1490/rpc.statd      
    udp        0      0 0.0.0.0:68           

    现在可以通过数据库客户端对MySql数据库进行连接了。

    我想做的是增加一张表,然后加入两条带中文的记录。

    下面是加表。

     

    插入记录

    查询成功

    接下来从服务器上查看下客户端加入进来的数据
    [root@Dawalixi bin]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 35
    Server version: 5.0.18-log

    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> use mysql;
    Database changed
    mysql> select * from testtb;
    +--------------+----------+
    | name         | password |
    +--------------+----------+
    |      | 123      |
    |          | 456      |
    +--------------+----------+
    2 rows in set (0.00 sec)

    mysql> quit
    Bye
    [root@Dawalixi bin]#
    很好,表和中文文字都加入进来了,说明之前对MySQL的设置是正确的。


    《全文完》有问题烦请指出

  • 相关阅读:
    IO流(5)—缓冲流
    vue-element-admin 中文问题
    npm 下载慢解决方案
    fatal: unable to connect to github.com
    为什么有sessionStorage,localStorage等,还需要vuex
    vuex页面刷新数据丢失的解决办法
    Node中JWT的使用
    socket.io 实现长连接演示代码
    WebSocket 实现长连接演示代码
    jquery ajax上传文件
  • 原文地址:https://www.cnblogs.com/heyang78/p/3305803.html
Copyright © 2011-2022 走看看