MYSQL主从复制配置指引
1.前期准备
部署完主备数据库,初始化主备库表结构和数据。
2. 主库配置修改
修改主库配置文件etc/my.cnf,新增以下配置:
#服务器 id,需唯一
server-id = 1
#二进制文件存放路径
log-bin = mysql-bin
#需同步的库
binlog-do-db = dida
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
保存修改后,重启主库mysql
service mysql restart
3. 备库配置修改
修改备库配置文件etc/my.cnf,新增以下配置:
#服务器 id,需唯一
server-id = 2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin
#不同步相关的库
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
slave-skip-errors=1032
保存修改后,重启备库mysql
service mysql restart
4. 主数据库用户赋权复制权限
以主库root用户为例,授权改用户复制权限:
root用户登录主库mysql
mysql -uroot -proot;
授权root用户复制权限
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
刷新配置
FLUSH PRIVILEGES;
5. 主数据库****获取当前二进制日志文件的名称和位置
root用户登录主库mysql
mysql -uroot -proot;
在主服务器上执行以下命令获取当前二进制日志文件的名称和位置:
SHOW MASTER STATUS;
执行结果如下所示,需使用的记录为File、Position
在这里插入图片描述
6. 备数据库配置主从复制
root用户登录备库mysql
mysql -uroot -proot;
在备数据库执行以下命令,其中的File、Position替换为5小节中的结果。
切换数据库为mysql
use mysql;
在备数据库执行以下命令,其中的MASTER_LOG_FILE、MASTER_LOG_POS替换为5小节中的结果File、Position
CHANGE MASTER TO
MASTER_HOST = '10.202.80.28',
MASTER_USER = 'root',
MASTER_PASSWORD = 'root',
MASTER_LOG_FILE = '替换值',
MASTER_LOG_POS = 替换值,
get_master_public_key=1;
7. 备数据库开启主从复制并查看状态
root用户登录备库mysql
mysql -uroot -proot;
开启同步
start slave;
查看同步状态
SHOW SLAVE STATUS\G;
正常开启主从复制的示意图如下: