MYSQL两主两从
1.准备4台mysql服务端口号分别为3307,3308,3309,3310
2.修改四台mysql的my.cnf文件
我选择3307,3309两个数据库为主服务器,3308是3307的从节点,3310是3309的从节点
3307的my.cnf添加二进制日志和服务id
log-bin=mysql-bin
server-id=3307
#作为从节点的时候,有数据库写入操作时也要更新二进制文件
log-slave-updates
auto_increment_increment=2
auto_increment_offset=1
sync_binlog=1
auto_increment_increment=2 //该服务器主键自增步长
auto_increment_offset=1 //从1开始
3308的my.cnf添加服务id
server-id=3308
3309的my.cnf添加二进制日志和服务id
auto_increment_increment=2 //该服务器主键自增步长
auto_increment_offset=2 //从2开始
3310的my.cnf添加服务id
server-id=3310
3.启动4个mysql
启动命令
./mysqld_safe &
打开4个服务器的连接客户端
1号客户端进入主服务器3307查看主服务器状态和偏移量
./mysql -uroot -p123456 -P3307 -h127.0.0.1
show master status
创建一个用于slave和master通信的用户账号
GRANT replication slave ON *.* TO 'liu'@'%' IDENTIFIED BY '123456';
重置偏移量
reset master
3号客户端进入主服务器3309查看主服务器状态和偏移量
./mysql -uroot -p123456 -P3309 -h127.0.0.1
show master status
创建一个用于slave和master通信的用户账号
GRANT replication slave ON *.* TO 'liu'@'%' IDENTIFIED BY '123456';
重置偏移量
reset master
4.进入从数据库设置从节点
在1号数据库中将3307设置为3309从节点
change master to master_host="47.110.157.82",master_port=3309,
master_user="liu",master_password="123456",
master_log_file="mysql-bin.000001",master_log_pos=154;
启动从节点,查看主从是否建立连接
start slave;
show slave status \G;
在3号数据库中将3309设置为3307从节点
change master to master_host="47.110.157.82",master_port=3307,
master_user="liu",master_password="123456",
master_log_file="mysql-bin.000001",master_log_pos=154;
启动从节点,查看主从是否建立连接
start slave;
show slave status \G;
2号客户端设置从节点
./mysql -uroot -p123456 -P3308 -h127.0.0.1
设置从节点
change master to master_host="47.110.157.82",master_port=3307,
master_user="liu",master_password="123456",
master_log_file="mysql-bin.000001",master_log_pos=154;
启动从节点,查看主从是否建立连接
start slave;
show slave status \G;
4号客户端设置从节点
./mysql -uroot -p123456 -P3310 -h127.0.0.1
设置从节点
change master to master_host="47.110.157.82",master_port=3309,
master_user="liu",master_password="123456",
master_log_file="mysql-bin.000001",master_log_pos=154;
启动从节点
start slave;
show slave status \G;
5.测试结果
结论:3307,3309自增步长为2,3307从1开始,3309从2开始,但是每次新增的主键都是在现有主键上自增。