文章

MySQL主备

MySQL主备

主备模式

手动模式

Master1节点

1
2
3
4
5
6
log-bin=mysql-bin
server-id=1
auto-increment-increment=2
auto-increment-offset=1

mysql_native_password=ON

创建同步使用的用户

1
2
3
CREATE USER 'replica_user'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

获取二进制日志文件名和位置:

1
SHOW BINARY LOG STATUS;

与Master2同步:

1
2
3
4
5
6
7
8
9
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='第二台的IP',
SOURCE_USER='第二台上用于同步的用户名',
SOURCE_PASSWORD='用户密码',
SOURCE_LOG_FILE='mysql-bin.000001', -- 用你在第二台服务器上获得的日志文件名
SOURCE_LOG_POS=555; -- 用你在第二台服务器上获得的位置
START REPLICA; -- 开启备份
STOP REPLICA; -- 停止备份
SHOW REPLICA STATUS; -- 查看备份状态

Master2节点

1
2
3
4
5
6
log-bin=mysql-bin
server-id=2
auto-increment-increment=2
auto-increment-offset=2

mysql_native_password=ON

创建同步使用的用户:

1
2
3
CREATE USER 'replica_user'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

获取二进制日志文件名和位置:

1
SHOW BINARY LOG STATUS;

与Master1同步:

1
2
3
4
5
6
7
8
9
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='第一台的IP',
SOURCE_USER='第一台上用于同步的用户名',
SOURCE_PASSWORD='用户密码',
SOURCE_LOG_FILE='mysql-bin.000001', -- 用你在第一台服务器上获得的日志文件名
SOURCE_LOG_POS=555; -- 用你在第一台服务器上获得的位置
START REPLICA; -- 开启备份
STOP REPLICA; -- 停止备份
SHOW REPLICA STATUS; -- 查看备份状态

Slave节点

本文由作者按照 CC BY 4.0 进行授权