Mysql 数据库主主复制

版权声明:转发原创文章请复制文章链接地址 https://blog.csdn.net/weixin_42579642/article/details/84591209

假设三台服务器做主主复制:

ip分别为: 172.20.10.13    172.20.10.14    172.20.10.15

13为15的主,14为13的主,15为14的主(这样就可以主主复制了)

每个服务器上创建一个用户,给上可访问权限如:

创建用户:CREATE USER 'test1'@'172.20.10.%' IDENTIFIED WITH mysql_native_password by '123456';

赋权:GRANT REPLICATION SLAVE ON *.* TO 'test1'@'172.20.10.%';

刷新权限:flush privileges;

在从服务器上测试使用主服务器刚刚创建的账号是否能够正常连接 例如

/usr/local/mysql/bin/mysql -utest1 -p123456 -h172.20.10.13

停止主、从服务器的mysql服务

例如 /etc/init.d/mysql stop

修改/etc/my.cnf文件

server-id   = 1                                          // 此值保证每台机子不一样                                   
auto_increment_increment=3                 // 步进值auto_imcrement,一般有n台主MySQL就填n

auto_increment_offset=1                       //起始值。一般填第n台主MySQL。此时为第一台主MySQL

log-slave-updates=on                           // 从服务器同步数据时如果也需要记录到二进制日志中

gtid-mode=on                                      //mysql5.7以上版本可以配置,配置此项后不用指定二进制文件了    
enforce-gtid-consistency

启动mysql服务  /etc/init.d/mysql start

进入mysql命令 行执行命令

change master to master_host=' 主 服务 器 地 址 ', master_user=' 用 户名 ',

master_password=' 密码 ',

master_port= 端口号 ,MASTER_CONNECT_RETRY=10;

例如 :

change master to master_host='172.20.10.13',master_user='test1',master_password='123456',master_port=3306,master_connect_retry=10;

再执行 start slave;

在从服务器输入命令

show slave status\G;

查看状态 :

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.16.6

Master_User: slave

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: binlog.000002

Read_Master_Log_Pos: 903

Relay_Log_File: relaylog.000004

.........

在主服务器上建立数据库数据表后查看从服务器 , 看是否配置成功

如果不成功建议,先清理下mysql日志,默认路径是/usr/local/mysql/var/,可以rm -rf mysql-bin.*,然后重新启动mysql看是否生成日志,如果生成新文件说明配置是正确的(当然具体问题具体分析)

撤销配置 :

进入命令行执行 stop slave; 再执行 reset slave; 即可 .

如果报uuid错误可以在/usr/local/mysql/var/auto.cnf把uuid随便改一下(重启即可)
 

猜你喜欢

转载自blog.csdn.net/weixin_42579642/article/details/84591209