linux环境下mysql主主互备模式配置(亲测可行)
一、mysql版本及需求说明
1、主机版本5.6.39-log 所在主机IP 47.95.241.100 端口号3306
2、从机版本5.7.27-log 所在主机IP 47.93.103.175 端口号3306
3、mysql安装略
4、IP为100的mysql目前有的数据库信息:information_schema、mysql、performance_schema,oa101mysql,rdp_server,xinzhi,test
5、IP为175的mysql目前有的数据库信息:information_schema,mysql,performance_schema,sys,test
6、需求
①、100上的mysql只需同步175上除information_schema,mysql,performance_schema,sys之外的所有数据库数据。
②、175上的数据只需同步100上除information_schema、mysql、performance_schema,oa101mysql,rdp_server,xinzhi之外的所有数据库信息。
二、具体配置
1、my.cnf配置文件配置
①、100主机配置
配置完之后须重启mysql服务(具体操作略)
②、175主机配置如下:
配置完后须重启mysql服务
2、主机为100和175的相互创建并授权账号信息
①、登录100主机的mysql服务执行如下sql命令
GRANT REPLICATION SLAVE ON *.* TO aaa@qq.com'47.93.103.175' IDENTIFIED BY '123456';
②、登录175主机的mysql服务执行如下sql命令
GRANT REPLICATION SLAVE ON *.* TO aaa@qq.com'47.95.241.100' IDENTIFIED BY '123456';
创建授权账号后可执行如下sql,查询账号信息
SELECT user,host from mysql.user;
3、分别查询两个主机数据日志信息并相互配置
①、登录100主机上的mysql服务执行如下命令:
show master status;
结果如下:
②、登录175主机上的mysql服务执行如下命令:
show master status;
结果如下:
③、相互配置链接数据及账号等信息
a、在100的主机上执行如下sql命令;
stop slave;
change master to master_host='47.93.103.175',master_user='slave',master_password='123456',master_log_file='mysql-bin.000002',master_port=3306,master_log_pos=766;
start slave;
b、在175的主机执行如下sql命令
stop slave;
change master to master_host='47.95.241.100',master_user='slave',master_password='123456',master_log_file='mysql-bin.000002',master_port=3306,master_log_pos=428;
start slave;
④、验证配置
在两个数据库服务上分别执行如下sql命令:
show slave status \G;
四、测试
1、在100上创建一个test1数据库,在175上查看
2、在175上删除test1数据库,在100上查看
备注:不要在主库(互为主备时的从库)上使用binlog-do-db或binlog-ignore-db选项,也不要在从库(互为主备)上使用replication-db-do或replication-db选项,因为这样可能产生跨库更新失败的问题;主主互备时推荐从库上使用replicate_wild_do_table和replicate-wild-ignore-table两个选项来解决复制过滤问题,主从互备也推荐这种配置