Mysql-5.7.9单机多实例

 之前也做过Mysql单机多实例的测试,不过那时候使用5.1版本的,这次使用5.7.9版本,虽然版高了但是也不会复杂,只是中间多出一个步骤;

就是初始化数据文件时会自动生成一个随机的root密码。

1、建立多实例数据存放目录,以端口为目录:

  1. mkdir -p /data/{3306,3307}/log 

2、在3306、3307目录下添加配置文件:

配置根据情况修改,这里只贴一个配置,只需要改改端口就好。

[root@mysql data]# cat /data/3306/my.cnf 

  1. [client]  
  2. port = 3306  
  3. socket = /data/3306/mysql.sock  
  4. [mysqld]  
  5. port=3306  
  6. socket = /data/3306/mysql.sock  
  7. pid-file = /data/3306/data/mysql.pid  
  8. basedir = /usr/local/mysql  
  9. datadir = /data/3306/data  
  10. #server-id=1 
  11. #log-bin=mysql-bin  
  12. #log-bin-indexmysql-bin.index  
  13. # LOGGING  
  14. log_error=/data/3306/log/mysql-error.log  
  15. slow_query_log_file=/data/3306/log/mysql-slow.log  

 

3、初始化第一个实例:

  1. mysql_install_db --datadir=/data/3306/data/ --user=mysql 

由于5.6版本后安装都会随机生成一个密码在:~/.mysql_secret

  1. [root@mysql data]# cat ~/.mysql_secret  
  2.  
  3. # Password set for user 'root@localhost' at 2016-06-01 09:25:18  
  4.  
  5. bse5kaaG.xyf 

启动实例3306:

  1. /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null & 

修改密码:提示密码在命令行中不安全。

  1. [root@mysql data]# mysqladmin -uroot -pbse5kaaG.xyf password '123456' -S /data/3306/mysql.sock 
  2.  
  3. mysqladmin: [Warning] Using a password on the command line interface can be insecure. 
  4.  
  5. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. 

完成上面就可以登陆3306端口的Mysql啦。

4、初始化第二个实例:

  1. mysql_install_db --datadir=/data/3307/data/ --user=mysql 
  2.  

报错:提示data目录不为空,虽然上面已经执行了:rm -rf /data/3307/data/*,但是并不能解决问题。

 

  1. [root@mysql data]# mysql_install_db --datadir=/data/3307/data/ --user=mysql 
  2.  
  3. 2016-06-01 09:33:45 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 
  4.  
  5. 2016-06-01 09:33:45 [ERROR]   The data directory '/data/3307/data/' already exist and is not empty. 

 

解决方法:把整个data目录删除; /data/3307/data,同重新建立一个data目录。

  1. rm -rf /data/3307/data 
  2. mkdir /data/3307/data 

修改密码:查看初始化生成的随机密码:

  1. [root@mysql data]# cat ~/.mysql_secret  
  2. # Password set for user 'root@localhost' at 2016-06-01 09:36:20  
  3. Z7fifnuhRMUZ 

启动实例3307:

  1. /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null & 

再修改3307实例的密码:

  1. mysqladmin -uroot -pZ7fifnuhRMUZ password '123456' -S /data/3307/mysql.sock 

 

查看实例启动情况:

 

 

这样就可以在单机上做主从,读写分离的实验啦。