在CentOS上安装MySQL数据库

一、环境描述

  1. 虚拟机配置
    CPU:单核
    内存:2 GB
    硬盘:120 GB
    IP:10.24.17.108

  2. 操作系统
    版本:CentOS 6.6 x86_64
    安装方式:Minimal

  3. 虚拟化环境
    VMware Workstation 12.1.0

  4. MySQL
    版本:mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
    安装方式:TAR压缩包

二、安装MySQL

1. 下载MySQL

在Shell中运行以下命令:

  1. cd /root/Downloads
  2. wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.6/mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz

2. 安装依赖包

在Shell中运行以下命令:

  1. yum --disablerepo=\* --enablerepo=c6-media install -y libaio

3. 创建MySQL用户和组

在Shell中运行以下命令:

  1. groupadd mysql
  2. useradd -r -g mysql mysql

4. 解压缩MySQL

在Shell中运行以下命令:

  1. tar xvzf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
  2. mv /root/Downloads/mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/MySQL

5. 修改MySQL目录所有权

在Shell中运行以下命令:

  1. chown -R mysql /usr/local/MySQL
  2. chgrp -R mysql /usr/local/MySQL

6. 设置MySQL为服务

在Shell中运行以下命令:

  1. cp /usr/local/MySQL/support-files/mysql.server /etc/init.d/mysql
  2. chmod 755 /etc/init.d/mysql
  3. chkconfig mysql on

7. 配置MySQL启动参数

在Shell中运行以下命令:

  1. # 指定安装目录
  2. sed -i '46s/basedir=/basedir=\/usr\/local\/MySQL/' /etc/init.d/mysql
  3. sed -i '47s/datadir=/datadir=$basedir\/data/' /etc/init.d/mysql
  4. # 指定lock文件
  5. sed -i $'57s/lockdir=\'\/var\/lock\/subsys\'/lockdir=$basedir\/lock/' /etc/init.d/mysql
  6. sed -i '58s/lock_file_path="$lockdir\/mysql"/lock_file_path=$lockdir\/mysql.lock/' /etc/init.d/mysql
  7. # 指定PID文件
  8. sed -i '63s/mysqld_pid_file_path=/mysqld_pid_file_path=$basedir\/pid\/mysql.pid/' /etc/init.d/mysql
  9. # 设置环境变量
  10. sed -i '105s/PATH="\/sbin:\/usr\/sbin:\/bin:\/usr\/bin:$basedir\/bin"/PATH=$PATH:$basedir\/bin/' /etc/init.d/mysql
  11. # 指定my.cnf文件
  12. sed -i '246s/if test -r "$basedir\/my.cnf"/if test -r "$basedir\/etc\/my.cnf"/' /etc/init.d/mysql
  13. sed -i '248s/extra_args="-e $basedir\/my.cnf"/extra_args="-e $basedir\/etc\/my.cnf"/' /etc/init.d/mysql
  14. # 让mysqld_safe启动时使用指定的my.cnf文件
  15. sed -i '283s/$bindir\/mysqld_safe/$bindir\/mysqld_safe --defaults-file=$basedir\/etc\/my.cnf/' /etc/init.d/mysql

9. 建立目录

在Shell中运行以下命令:

  1. rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64
  2. mkdir -p /usr/local/MySQL/etc
  3. mkdir -p /usr/local/MySQL/logs
  4. mkdir -p /usr/local/MySQL/pid
  5. mkdir -p /usr/local/MySQL/lock
  6. mkdir -p /usr/local/MySQL/sock

10. 配置my.cnf文件

在Shell中运行以下命令:

  1. touch /usr/local/MySQL/etc/my.cnf
  2. echo "[mysqld]" >> /usr/local/MySQL/etc/my.cnf
  3. echo "socket=/usr/local/MySQL/sock/mysql.sock" >> /usr/local/MySQL/etc/my.cnf
  4. echo "user=mysql" >> /usr/local/MySQL/etc/my.cnf
  5. echo "# Disabling symbolic-links is recommended to prevent assorted security risks" >> /usr/local/MySQL/etc/my.cnf
  6. echo "symbolic-links=0" >> /usr/local/MySQL/etc/my.cnf
  7. echo "" >> /usr/local/MySQL/etc/my.cnf
  8. echo "[mysqld_safe]" >> /usr/local/MySQL/etc/my.cnf
  9. echo "log-error=/usr/local/MySQL/logs/mysql-error.log" >> /usr/local/MySQL/etc/my.cnf
  10. echo "slow_query_log=1" >> /usr/local/MySQL/etc/my.cnf
  11. echo "log-slow-queries=/usr/local/MySQL/logs/mysql-slow-queries.log" >> /usr/local/MySQL/etc/my.cnf
  12. echo "" >> /usr/local/MySQL/etc/my.cnf
  13. echo "[client]" >> /usr/local/MySQL/etc/my.cnf
  14. echo "socket=/usr/local/MySQL/sock/mysql.sock" >> /usr/local/MySQL/etc/my.cnf

11. 初始化数据库

在Shell中运行以下命令:

  1. cd /usr/local/MySQL
  2. scripts/mysql_install_db --user=mysql
  3. chown -R mysql:mysql /usr/local/MySQL
  4. rm -rf /usr/local/MySQL/my.cnf

12. 设置环境变量

在Shell中运行以下命令:

  1. echo "" >> /etc/profile
  2. echo "export PATH=/usr/local/MySQL/bin:\$PATH" >> /etc/profile
  3. echo "export MYSQL_UNIX_PORT=/usr/local/MySQL/sock/mysql.sock" >> /etc/profile
  4. source /etc/profile

13. 设置数据库root用户密码

在Shell中运行以下命令:

  1. mysqld_safe --skip-grant-table &
  2. mysql -uroot -p

进入MySQL的命令行之后,运行以下命令,将root密码设置为password:

  1. use mysql;
  2. update user set password=password('password') where user='root';
  3. flush privileges;
  4. exit;

14. 重新启动

在Shell中运行以下命令:

  1. reboot

15. 配置远程登录

在Shell中运行以下命令:

  1. mysql -uroot -p

输入上面设置的密码之后,进入MySQL的命令行,运行以下命令,将远程访问的密码设置为password:

  1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  3. FLUSH PRIVILEGES;
  4. exit;

三、验证安装

1. 检查服务状态

在Shell中运行以下命令:

  1. service mysql status

若返回信息如下图所示,则表示MySQL服务运行正常:

MySQL服务状态

2. 检查lock文件

在Shell中运行以下命令:

  1. ll /usr/local/MySQL/lock/

若返回信息如下图所示,则表示MySQL服务启动时成功创建了lock文件:

MySQL的lock文件

3. 检查PID文件

在Shell中运行以下命令:

  1. cat /usr/local/MySQL/pid/mysql.pid

若返回信息如下所示,表示MySQL服务的进程号为1604,这个进程号是会变化的:

MySQL的PID文件

4. 检查sock文件

在Shell中运行以下命令:

  1. ll /usr/local/MySQL/sock/mysql.sock

若返回信息如下所示,表示MySQL服务启动时成功创建了sock文件:

MySQL的sock文件

5. 检查日志文件

在Shell中运行以下命令:

  1. ll /usr/local/MySQL/logs/

若返回信息如下所示,表示MySQL的日志目录设置正确:

MySQL的日志文件

四、移除安装

本文会将MySQL几乎所有的文件存放在同一个目录中,在想要删除MySQL时,则可以很方便地删除:

  1. service mysql stop
  2. rm -rf /usr/local/MySQL
  3. rm -rf /etc/init.d/mysql