作者:高元_G·Marshal于 2017年06月21日 发布在分类 / 开发技术 / Linux 下,并于 2017年06月21日 编辑
    CentOS 6.5下安装MySQL 5.5

       396

       0


    安装方式分为rpm和源码编译安装两种,本文是采用mysql源码编译方式,编译器使用Cmake。软件需要mysql-5.5.29.tar.gz和cmake-2.8.10.2.tar.gz,请自行下载。
    下载地址:
    http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.5/
    http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
    其中mysql使用最新的稳定版本,即最新试用版的上一个版本,且非rc或者alpha的版本,Cmake直接用的最新版。

    1.上传mysql-5.5.29.tar.gz和cmake-2.8.10.2.tar.gz到/usr/local文件夹下。

    2.CentOS安装g++和ncurses-devel

    [root@fiona local]# yum install gcc-c++
    [root@fiona local]# yum install ncurses-devel

    3.cmake的安装

    [root@fiona local]# nohup wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz &

    [root@fiona src]# tar -zxv -f cmake-2.8.10.2.tar.gz

    [root@fiona src]# cd cmake-2.8.10.2
    [root@fiona cmake-2.8.10.2]# ./configure
    [root@fiona cmake-2.8.10.2]# make
    [root@fiona cmake-2.8.10.2]# make install

    4.将cmake永久加入系统环境变量

    用vi在文件/etc/profile文件中增加变量,使其永久有效,
    [root@fiona cmake-2.8.10.2]# vi /etc/profile

    在文件末尾追加以下两行代码:
    PATH=/usr/local/cmake-2.8.10.2/bin:$PATH
    export PATH

    执行以下代码使刚才的修改生效:
    [root@fiona cmake-2.8.10.2]# source /etc/profile

    用 export 命令查看PATH值

    [root@fiona cmake-2.8.10.2]# echo $PATH

    5.创建mysql的安装目录及数据库存放目录

    [root@fiona local]# mkdir -p /usr/local/mysql //安装mysql
    [root@fiona local]# mkdir -p /usr/local/mysql/data //存放数据库

    6.创建mysql用户及用户组

    [root@fiona local] groupadd mysql
    [root@fiona local]useradd -r -g mysql mysql

    7.编译安装mysql 

    [root@fiona src]# nohup wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.39.tar.gz &   //mysql-5.5.39此版本已无 

    [root@fiona src]# tar zxvf mysql-5.5.39.tar.gz //解压
    [root@fiona src]# cd mysql-5.5.29
    [root@fiona mysql-5.5.39]#
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_MEMORY_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DMYSQL_USER=mysql \
    -DMYSQL_TCP_PORT=3306
    [root@fiona mysql-5.5.39]# make
    [root@fiona mysql-5.5.39]# make install

    8.检验是否安装成功

    [root@fiona mysql-5.5.39]# cd  /usr/local/mysql

    [root@fiona mysql]# ls

    bin      data  include         lib  mysql-test  scripts  sql-bench

    COPYING  docs  INSTALL-BINARY  man  README      share    support-files
    有bin等以上文件的话,恭喜你已经成功安装了mysql。

    配置mysql

    9.设置mysql目录权限

    [root@fiona mysql]# cd /usr/local/mysql //把当前目录中所有文件的所有者设为root,所属组为mysql
    [root@fiona mysql]# chown -R root:mysql .

    [root@fiona mysql]# chown -R mysql:mysql data

    10.将mysql的启动服务添加到系统服务中

    [root@fiona mysql]# cp support-files/my-medium.cnf /etc/my.cnf

    cp:是否覆盖"/etc/my.cnf"? y

    11.创建系统数据库的表

    [root@fiona mysql]# cd /usr/local/mysql

    [root@fiona mysql]# scripts/mysql_install_db --user=mysql

    12.设置环境变量

    [root@fiona mysql]# vi /root/.bash_profile
    在修改PATH=$PATH:$HOME/bin为:
    PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
    [root@fiona mysql]# source /root/.bash_profile //使刚才的修改生效

    13.手动启动mysql

    [root@fiona mysql]# ./bin/mysqld_safe --user=mysql & //启动MySQL,但不能停止
    mysqladmin -u root -p shutdown //此时root还没密码,所以为空值,提示输入密码时,直接回车即可。

    14.将mysql的启动服务添加到系统服务中

    [root@fiona mysql]# cp support-files/mysql.server /etc/init.d/mysql

    15.启动mysql

    [root@fiona mysql]# service mysql start
    Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

    启动失败:
    我这里是权限问题,先改变权限
    [root@fiona mysql]# chown -R mysql:mysql /usr/local/mysql

    接着启动服务器
    [root@fiona mysql]# /etc/init.d/mysql start
    Note:
    MySQL启动方式

    1)直接调用mysqld。这是最不常见的方式,不推荐使用。
    2)运行mysql.server脚本
    mysql.server脚本通过调用mysqld_safe启动服务器,该脚本可以通过参数start和stop指定启动还是关闭。
    mysql.server脚本在MySQL安装目录下的share/mysql目录中,如果是采用源码安装的MySQL,则可以在support-files目录里找到。如果想使用mysql.server,则必须把它复制到合适的运行级别目录中,如下所示:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cp mysql.server /etc/init.d/mysqld  
    chmod 755 /etc/init.d/mysqld  
    如上配置之后,就可以利用以下命令启动和关闭MySQL实例了:
    service mysqld start/stop  
    /etc/init.d/mysqld start/stop  
    使用chkconfig命令配置开机自动启动:
    [sql] 
    chkconfig--add mysqld  
    chkconfig mysqldon 
    运行以下命令检查是否正确启用:
    [plain] 
    [root@data data]# chkconfig--list mysqld  
    mysqld          0:off 1:off 2:on   3:on   4:on   5:on   6:off MySQL关闭方式
    1
    <span style="white-space:normal;">mysqladmin -p -u root shutdown  </span>
    1
    2
    3
    启动后,后台运行的进程
    root      2294     1  0 03:53 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe--datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/fiona.pid
    mysql     2595  2294  0 03:53 pts/1    00:00:00 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/fiona.err --pid-file=/usr/local/mysql/data/fiona.pid --socket=/usr/local/mysql/mysql.sock --port=3306

    16.修改MySQL的root用户的密码以及打开远程连接

    [root@localhost mysql]# mysql -u root mysql

    mysql> use mysql;
    mysql> desc user;
    mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力
    mysql> update user set Password = password('abc123') where User='root'; //设置root用户密码
    mysql> select Host,User,Password from user where User='root';
    mysql> flush privileges;
    mysql> exit

    17.重新登录

    [root@localhost mysql]# mysql -u root -p
    Enter password:abc123

    若还不能进行远程连接,关闭防火墙
    [root@localhost]# /etc/rc.d/init.d/iptables stop

     
    18.配置Innodb
    [root@fiona plugin]# cd /etc
    [root@fiona etc]# vi my.cnf
    # To take best advantage of current InnoDB features
    innodb_file_per_table=1
    innodb_file_format=barracuda
    innodb_strict_mode=1

    //官方推荐

    19.数据库的关闭
    [root@fiona mysql]# /usr/local/mysql/support-files/mysql.server stop
    Shutting down MySQL. SUCCESS! 

    启动Mysql时报错:
    140907 14:04:09 mysqld_safe Logging to '/usr/local/mysql/data/fiona.err'.
    140907 14:04:09 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
    140907 14:04:11 mysqld_safe mysqld from pid file /usr/local/mysql/data/fiona.pid ended
    由于登陆使用了如下命令:
    shell> ./bin/mysqld_safe --user=root &
    导致再次登陆时候使用
    shell> ./bin/mysqld_safe --user=mysql &
    解决方法:初始化mysql
    /usr/local/mysql/scripts/mysql_install_db --user=mysql

    1、#service mysqld start
           提示:mysqld未被识别的服务
           原因:没有安装mysql-server
           解决方法:安装mysql-server
                   yum安装:#yum -y install mysql-server
           安装mysql所需rpm软件包:
                     mysql-5.1.61-1.el6_2.1.i686.rpm
                     mysql-server-5.1.61-1.el6_2.1.i686.rpm
                     mysql-libs-5.1.61-1.el6_2.1.i686.rpm

    2、#mysql -u root -p passwd
         提示:ERROR 2002 (HY000):Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
         原因:没有开启mysqld服务
         解决方案:切换到root,启用mysqld服务
                    命令:#service mysqld start

    3、查看mysql安装路径
         命令:#whereis mysql

    4、查看mysqld服务是否已添加到linux
         命令:#chkconfig --list mysqld
         已添加提示:mysql           0:关闭   1:关闭   2:关闭   3:关闭   4:关闭    5:启用   6:关闭

    5、mysqld服务启用时,查看服务器是否在运行
         命令:ps -ef | grep mysqld


    Reference:
    http://dev.mysql.com/doc/refman/5.5/en/binary-installation.html
    http://www.cnblogs.com/zhoulf/archive/2013/01/25/zhoulf.html

    mysql启动的四种方式(推荐mysql_safe)
    http://blog.chinaunix.net/uid-13642598-id-3153537.html
    mysql DBA:mysqladmin常用命令总结
    http://www.jb51.net/article/48169.htm#
    http://www.linuxidc.com/Linux/2011-03/33362.htm

    mysql之编译安装mysql以及mysql mysqladmin工具的使用说明
    http://www.it165.net/database/html/201404/5890.html
    mysql的监听端口是 3306
    [root@fiona2 bin]# ss -tnl
    State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
    LISTEN     0      128                                       *:37677                                    *:*     
    LISTEN     0      128                                      :::111                                     :::*     
    LISTEN     0      128                                       *:111                                      *:*     
    LISTEN     0      128                                      :::22                                      :::*     
    LISTEN     0      128                                       *:22                                       *:*     
    LISTEN     0      128                               127.0.0.1:631                                      *:*     
    LISTEN     0      128                                     ::1:631                                     :::*     
    LISTEN     0      128                                      :::19419                                   :::*     
    LISTEN     0      50                                        *:3306                                     *:*     

    [root@fiona2 bin]# mysqladmin -uroot -p processlist
    +----+------+-----------+----+---------+------+-------+------------------+
    | Id | User | Host      | db | Command | Time | State | Info             |
    +----+------+-----------+----+---------+------+-------+------------------+
    | 7  | root | localhost |    | Query   | 0    |       | show processlist |
    +----+------+-----------+----+---------+------+-------+------------------+

    ===================================================
    [root@fiona home]# su - mysql
    su: 警告:无法切换到目录/home/mysql: 没有那个文件或目录

    # cp -rfv /etc/skel/.* /home/mysql
    # chown -Rv mysql.mysql /home/mysql

    解决bash: mysql: command not found 的方法
    原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

    首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

    # ln -s /usr/local/mysql/bin/mysql  /usr/bin


    访问权限

    创建人 高元_G·Marshal
    文档编辑权限 创建者私有
    文档阅读权限 来自分类
    分类阅读权限 所有人
    分类编辑权限 所有人
    分类审核权限
    标签

    MYSQL
    历史版本

    修改日期 修改人 备注
    2017-06-21 14:46:35[当前版本] 高元_G·Marshal CREAT
    同类知识
    相关知识

    睿恒知识库-V3.2.0