1.在原来两台服务器的数据库配置文件上分别如下加入配置
原来的master加入:
auto_increment_increment=2 #步进值auto_imcrement 。一般有n台主mysql就填n
auto_increment_offset=1 #起始值,一般填写第n台主机mysql.此时为第一台主 mysql
原来的slave加入:
auto_increment_increment=2
auto_increment_offset=2
重启两台服务器的数据库
service mysqld restart
2.原来的从库--》配置同步账号
- 创建数据库复制用户:mysql>CREATE USER 'repl'@'172.16.127.49' IDENTIFIED BY '123456';
- 授权:mysql>grant replication slave on *.* to 'repl'@'172.16.127.49' ;
3.原来的从库--》查询当前的二进制日志名和偏移量值,记录下file跟position的值,待会从库要用
1. mysql>show master status G
4.原来的主库--》对数据库服务器做相应设置,指定复制使用的用户,主数据库服务器的IP、端口以及开始执行复制的日志文件和位置等
1. CHANGE MASTER TO MASTER_HOST='172.16.127.83',MASTER_USER='repl',MASTER_PASSWORD='uw7!23!Qw2',MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=1251;
5. .原来的主库--》启动slave线程
1. mysql>start slave;
6. 主库跟从库分别检查状态
1. 检查master的:mysql>show processlistG 结果:看到上面的Command: Binlog Dump说明配置成功!
2.检查slave的:mysql>show slave status G 结果:提示:Slave_IO_Running和Slave_SQL_Running两个值为YES基本上成功了
mysql主主搭建无非就是多了第一步的参数,将主从搭建反过来再搭建一遍
注意:mysql8版本可以开启基于GTID主从复制,据说可以提升性能
步骤如下:
1.两台配置文件my.cn加入如下配置 :
[mysqld]
server-id=2
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates=on
2.重启mysql服务:service mysqld restart
3.两台服务器登录mysql分别执行:
1.stop slave;
2.change master to master_host='172.16.127.83',master_port=3306,master_user='repl',master_password='123456',master_auto_position=1,get_master_public_key=1;
3.start slave;
4.show slave statusG; 检查状态:提示:Slave_IO_Running和Slave_SQL_Running两个值为YES基本上成功了
5.show processlistG; 发现已经有binlog dump GTID 的信息则配置成功