配置数据库1:192.168.77.3 配置数据库1:192.168.77.4
1,修改配置文件
修改主库配置文件:
#只作为主库时的配置数据
server-id=1 # 唯一标识符,主从库不能相同
log-bin=mysql-bin # 开启二进制日志
binlog-format=ROW # 二进制日志格式
auto-increment-increment=2 # 自增字段的起始值增量
auto-increment-offset=1 # 自增字段的起始值
binlog-ignore-db=mysql # 不同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#同时也要作为从库时要配置的数据
relay-log=relay-bin # 为主库充当从库时启用中继日志
# 自增字段配置
auto-increment-increment=2 # 自增步长为2,确保每台服务器的自增值不会冲突
auto-increment-offset=1 # 主库的自增偏移量为1
修改从库配置文件:
#只作为从库时的配置数据
server-id=2 # 唯一标识符,与主库不同
log-bin=mysql-bin # 开启二进制日志(从库开启是为了防止未来可能的主从切换)
binlog-format=ROW # 二进制日志格式
auto-increment-increment=2
auto-increment-offset=2
binlog-do-db=tws # 指定要同步的数据库
#binlog-do-db=ziyuan # 指定要同步的数据库
binlog-do-db=test
binlog-do-db=ziyuan
binlog-do-db=ziyuanUt8
#同时也要作为主库时要配置的数据
relay-log=relay-bin # 中继日志配置
# 自增字段配置
auto-increment-increment=2 # 自增步长同样为2,和主库保持一致
auto-increment-offset=2 # 从库的自增偏移量为2,确保与主库不同
2. 创建用户并授权(双向)
为了实现双向复制,你需要在主库和从库上都创建复制用户,并授予相应的权限。
在主库上创建复制用户(用于从库连接主库)(192.168.77.3)
CREATE USER 'slave'@'192.168.77.4' IDENTIFIED BY '123456@Abc';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.77.4';
FLUSH PRIVILEGES;
在从库上创建复制用户(用于主库连接从库)(192.168.77.4)【如果是单主从就不需要配置】
CREATE USER 'slave'@'192.168.77.3' IDENTIFIED BY '123456@Abc';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.77.3';
FLUSH PRIVILEGES;
3. 设置主库上的从库
在主库上查看二进制日志状态:
SHOW MASTER STATUS;
返回示例: +----------------+--------+-------------------------+----------------+-----------------+ |File |Position|Binlog_Do_DB |Binlog_Ignore_DB|Executed_Gtid_Set| +----------------+--------+-------------------------+----------------+-----------------+ |mysql-bin.000007| 154|tws,test,ziyuan,ziyuanUt8| | | +----------------+--------+-------------------------+----------------+-----------------+ 记录下File和Position的值,这些值在后续配置从库时需要用到。
在主库上(192.168.77.3),配置从库:
CHANGE MASTER TO
MASTER_HOST='192.168.77.4',
MASTER_USER='slave',
MASTER_PASSWORD='123456@Abc',
MASTER_LOG_FILE='mysql-bin.000007', # 替换为从库上的二进制日志文件
MASTER_LOG_POS=154; # 替换为从库上的二进制日志位置
启动主库的复制进程:
START SLAVE;
4. 设置从库上的主库
在从库上(192.168.77.4),配置主库:
CHANGE MASTER TO
MASTER_HOST='192.168.77.3',
MASTER_USER='slave',
MASTER_PASSWORD='123456@Abc',
MASTER_LOG_FILE='mysql-bin.000006', # 替换为主库上的二进制日志文件
MASTER_LOG_POS=154;# 替换为主库上的二进制日志位置
启动从库的复制进程:
START SLAVE;
检查复制状态
最后,使用以下命令检查主从复制的状态,确认一切正常:
SHOW SLAVE STATUS\G;
其他会用到的指令
重置从库的中继日志 重置中继日志可以清除当前存在的中继日志文件并重新生成。执行以下命令:
RESET SLAVE ALL;
停止从库复制 首先,停止从库的所有复制线程:
STOP SLAVE;
停止从库的 IO 线程 在执行 CHANGE MASTER TO 命令之前,先运行以下命令来停止从库的 IO 线程:
STOP SLAVE IO_THREAD;
如果你想停止整个复制进程(包括 SQL 线程),可以执行:
STOP SLAVE;
注意:本文归作者所有,未经作者允许,不得转载