情况
PXC集群方案可以完全满足三台以上的MySQL部署,但有时也会遇到只有2台服务器的情况,所以有必要再去熟悉下MySQL的基础主从或者主主集群的方式。
思路
A服务器与B服务器互为主MySQL,进行读写同步。
关键配置
/etc/my.cnf中需要新增开启集群模式
A服务器:
log-bin=mysql-bin server-id=1 binlog_format=mixed relay-log=mysql-relay-log relay_log_purge=on auto_increment_offset=1 auto_increment_increment=2
B服务器:
log-bin=mysql-bin server-id=2 binlog_format=mixed relay-log=mysql-relay-log relay_log_purge=on auto_increment_offset=1 auto_increment_increment=2
1.server-id——一定要有区分不然会有异常
2.log-bin——开启logbin日志
主主同步
在A,B服务器上分别创建同步专门使用的账号
A服务器:grant replication slave on *.* to 'slave'@'B服务器IP地址' identified by '123456';
B服务器:grant replication slave on *.* to 'slave'@'A服务器IP地址' identified by '123456';
先配置A服务器作为slave同步B服务器,然后再配置B服务器同步A服务器,最终形成互为主MySQL的集群模式
A服务器:
#先停止slave模式,准备同步B服务器数据 stop slave; #通过show master statusG命令先从B服务器上获取log-file和log-pos相关信息,然后在A服务器上配置B服务器作为master change master to master_host='B服务器IP', master_port=3306, master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=123; #开启slave模式 start slave;
B服务器:
#先停止slave模式,准备同步B服务器数据
stop slave; #通过show master statusG命令先从A服务器上获取log-file和log-pos相关信息,然后在B服务器上配置A服务器作为master change master to master_host='A服务器IP', master_port=3306, master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=123; #开启slave模式 start slave;
验证配置
完成以上操作后,分别使用show slave statusG命令查看slave同步的状态,只有当Slave_IO_Running和Slave_SQL_Runing都为yes状态即为成功配置。
思考
如果需要主从模式该怎么配置?同样只需要减少一步,不在配置两个slave经行同步即可。