在现有运行的mysql环境下,修改相关配置项,完成主主互备模式的部署。
下面的配置说明中设置的mysql互备对应服务器IP为: 192.168.1.6 192.168.1.7
先检查UUID
在mysql的数据目录下,检查主备mysql的uuid(如下的server-uuid)是否一致,如果一样,要改为不一样的值,修改时要关掉mysql服务,修改成功后再重启服务,之后还要检查是否修改成功。(下边以10.10.7.2为例)
cat /opt/midware/mysql/mysql-5.7/data/auto.cnf
也可以去数据库里面查询:
也注意修改主备之间my.cnf中偏移量起始值不同、server-id不同。
再创建并授权同步帐号
登陆Mysql 192.168.1.6 (mysql -h192.168.1.6 -uroot -ppassword),执行如下SQL:
CREATE USER ‘repl’@‘192.168.1.%’ IDENTIFIED WITH mysql_native_password BY ‘password’;
GRANT replication slave ON . TO ‘repl’@‘192.168.1.%’;
GRANT ALL privileges ON . TO ‘repl’@‘192.168.1.%’;
查看是否创建成功:
use mysql;
select Host,User from user;
然后进行数据同步配置
以192.168.1.6数据库为基准,将1.7数据库用1.6数据库数据覆盖:
(注意导入的表根据实际所用的表进行导入,导入之前先stop slave)
在192.168.1.7服务器上执行:
/opt/midware/mysql/mysql-5.7/bin/mysqldump -h192.168.1.220 -uroot -ppassword --master-data=2 --single-transaction --databases table >all.sql
/opt/midware/mysql/mysql-5.7/bin/mysql -h192.168.1.7 -uroot -ppassword <all.sql
登陆 192.168.1.6 mysql服务,设置同步位置信息(主上master_log_file、master_log_pos填备show master status;查询出来的):
mysql>stop slave;
mysql>change master to master_host=‘192.168.1.7’,master_user=‘repl’,master_password=‘password’,master_log_file=‘binlog.000015’ ,master_log_pos=48898330;
mysql>start slave;
mysql> show slave status \G;
登陆 192.168.1.7 mysql服务,设置同步位置信息(备上master_log_file、master_log_pos填all.sql导出来的主的信息):
mysql>stop slave;
mysql>change master to master_host=‘192.168.1.6’,master_user=‘repl’,master_password=‘password’,master_log_file=‘binlog.000042’ ,master_log_pos=57042011;
mysql>start slave;
mysql> show slave status \G;
两台服务器上,show slave status中运行状态都如下,表示主主同步执行成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes