封尘网

让学习成为一种习惯!

Mysql-5.7.9单机多实例

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

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

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

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

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

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

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

[client]
port = 3306
socket = /data/3306/mysql.sock
[mysqld]
port=3306
socket = /data/3306/mysql.sock
pid-file = /data/3306/data/mysql.pid
basedir = /usr/local/mysql
datadir = /data/3306/data
#server-id=1
#log-bin=mysql-bin
#log-bin-index= mysql-bin.index
# LOGGING
log_error=/data/3306/log/mysql-error.log
slow_query_log_file=/data/3306/log/mysql-slow.log

3、初始化第一个实例:

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

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

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

启动实例3306:

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

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

[root@mysql data]# mysqladmin -uroot -pbse5kaaG.xyf password '123456' -S /data/3306/mysql.sock

mysqladmin: [Warning] Using a password on the command line interface can be insecure.

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

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

4、初始化第二个实例:

mysql_install_db --datadir=/data/3307/data/ --user=mysql

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

[root@mysql data]# mysql_install_db --datadir=/data/3307/data/ --user=mysql
2016-06-01 09:33:45 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

2016-06-01 09:33:45 [ERROR]   The data directory '/data/3307/data/' already exist and is not empty.

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

rm -rf /data/3307/data
mkdir /data/3307/data

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

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

启动实例3307:

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

再修改3307实例的密码:

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

查看实例启动情况:

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

提醒:本文最后更新于 2671 天前,文中所描述的信息可能已发生改变,请谨慎使用。