安装依赖包

  1. yum install libaio -y

下载解压并创建软连接

  1. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
  2. tar zxf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local
  3. ln -s /usr/local/mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

创建目录

  1. mkdir -p /data/mysql_data{1,2,3,4}

创建用户

  1. groupadd mysql
  2. useradd -r -g mysql -s /bin/false mysql

修改目录属组

  1. chown -R mysql.mysql /usr/local/mysql/*
  2. chown -R mysql.mysql /data/

配置环境变量

  1. echo "MYSQL_HOME=/usr/local/mysql/" >> /etc/profile
  2. echo "PATH=\$PATH:\${MYSQL_HOME}/bin" >> /etc/profile
  3. source /etc/profile

创建配置文件

  1. vim /etc/my.cnf
  1. [mysqld_multi]
  2. mysqld = /usr/local/mysql/bin/mysqld
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin
  4. log = /tmp/mysql_multi.log
  5. [mysqld1]
  6. # 设置数据目录 [多实例中一定要不同]
  7. datadir = /data/mysql_data1
  8. # 设置sock存放文件名 [多实例中一定要不同]
  9. socket = /data/mysql_data1/mysql.sock1
  10. # binlog
  11. log-bin = /data/mysql_data1/mysql-bin
  12. # serverid
  13. server-id = 3306
  14. # 设置监听开放端口 [多实例中一定要不同]
  15. port = 3306
  16. # 设置运行用户
  17. user = mysql
  18. # 关闭监控
  19. performance_schema = off
  20. # 设置innodb 缓存大小
  21. innodb_buffer_pool_size = 32M
  22. # 设置监听IP地址
  23. bind_address = 0.0.0.0
  24. # 关闭DNS 反向解析
  25. skip-name-resolve = 0
  26. [mysqld2]
  27. datadir = /data/mysql_data2
  28. socket = /data/mysql_data2/mysql.sock2
  29. log-bin = /data/mysql_data2/mysql-bin
  30. server-id = 3307
  31. port = 3307
  32. user = mysql
  33. performance_schema = off
  34. innodb_buffer_pool_size = 32M
  35. bind_address = 0.0.0.0
  36. skip-name-resolve = 0
  37. [mysqld3]
  38. datadir = /data/mysql_data3
  39. socket = /data/mysql_data3/mysql.sock3
  40. log-bin = /data/mysql_data3/mysql-bin
  41. server-id = 3308
  42. port = 3308
  43. user = mysql
  44. performance_schema = off
  45. innodb_buffer_pool_size = 32M
  46. bind_address = 0.0.0.0
  47. skip-name-resolve = 0
  48. [mysqld4]
  49. datadir = /data/mysql_data4
  50. socket = /data/mysql_data4/mysql.sock4
  51. log-bin = /data/mysql_data4/mysql-bin
  52. server-id = 3309
  53. port = 3309
  54. user = mysql
  55. performance_schema = off
  56. innodb_buffer_pool_size = 32M
  57. bind_address = 0.0.0.0
  58. skip-name-resolve = 0

初始化

  1. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1

过滤密码:M/IGgPh;s0lo

  1. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2

过滤密码:k+j2Vj2nZtlV

  1. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3

过滤密码:5*K,*o4VDja!

  1. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data4

过滤密码:!rfTr&huc0Kk

配置启动脚本

  1. cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
  2. chmod +x /etc/init.d/mysqld_multi
  3. chkconfig --add mysqld_multi

启动服务

  1. /etc/init.d/mysqld_multi report
  2. /etc/init.d/mysqld_multi start
  3. /etc/init.d/mysqld_multi start 1
  4. /etc/init.d/mysqld_multi start 2
  5. /etc/init.d/mysqld_multi start 3
  6. /etc/init.d/mysqld_multi start 4

查看服务

  1. netstat -lntp | grep mysqld

修改密码

  1. mysql -S /data/mysql_data1/mysql.sock1 -p'M/IGgPh;s0lo'
  2. mysql -S /data/mysql_data2/mysql.sock2 -p'k+j2Vj2nZtlV'
  3. mysql -S /data/mysql_data3/mysql.sock3 -p'5*K,*o4VDja!'
  4. mysql -S /data/mysql_data4/mysql.sock4 -p'!rfTr&huc0Kk'
  1. set password = '123456';