MySQL 8.0 主从复制配置指南:版本差异与实操步骤
本文将指导您在 MySQL 8.0 环境中完成主从复制的配置。核心步骤包括主库开启 Binlog 并创建授权用户、从库修改 server-id 以及使用正确的同步命令连接主库。特别需注意 MySQL 8.0.23 版本前后语法的变化,以确保配置生效。
主库准备与配置
主库是数据的源头,需要开启二进制日志并确保有专门的用户供从库访问。
第一步:修改配置文件并重启服务
目的是为数据库实例分配唯一 ID 并控制读写行为。编辑 /etc/my.cnf 文件:
# mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,默认为1
server-id=1
#是否只读,1 代表只读, 0 代表读写。主库通常设为 0 以允许写入
read-only=0
# 可选:指定不需要同步的数据库
# binlog-ignore-db=mysql
# 可选:指定需要同步的数据库
# binlog-do-db=db01
保存后重启 MySQL 服务使配置生效:
systemctl restart mysqld
第二步:创建复制专用用户并授权
在 MySQL 8.0 中推荐使用 mysql_native_password 认证插件以保证兼容性,并授予 REPLICATION SLAVE 权限。
# 创建用户 itcast,密码为 Root@123456,允许任意主机连接
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
# 授权该用户进行主从复制
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
FLUSH PRIVILEGES;
第三步:获取二进制日志坐标
记录当前的日志文件和位置点,这是从库开始同步的“起点”。
SHOW MASTER STATUS;
关键字段说明:
File:当前正在使用的二进制日志文件名。Position:日志文件中的当前位置指针。Binlog_Do_DB/Binlog_Ignore_DB:显示实际生效的同步/忽略数据库列表。
从库配置与同步启动
从库需要配置唯一的 ID,并指向主库的地址和刚才记录的日志坐标。请注意 MySQL 8.0.23 版本带来的 API 变更。
第四步:修改从库配置文件
同样编辑 /etc/my.cnf,确保 server-id 与主库不同,且建议开启只读模式以防止误写:
# mysql 服务ID,必须唯一,此处设为 2
server-id=2
# 从库通常设置为只读,防止数据不一致
read-only=1
重启服务:
systemctl restart mysqld
第五步:配置主从连接信息(关键版本差异)
登录 MySQL 客户端,根据您安装的版本号选择对应的命令:
场景 A:MySQL 版本 >= 8.0.23(推荐)
官方推荐使用新的 CHANGE REPLICATION SOURCE TO 语法,参数名也相应变化:
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='192.168.200.200',
SOURCE_USER='itcast',
SOURCE_PASSWORD='Root@123456',
SOURCE_LOG_FILE='binlog.000004',
SOURCE_LOG_POS=663;
场景 B:MySQL 版本 < 8.0.23(旧版兼容)
继续使用传统的 CHANGE MASTER TO 语法:
CHANGE MASTER TO
MASTER_HOST='192.168.200.200',
MASTER_USER='itcast',
MASTER_PASSWORD='Root@123456',
MASTER_LOG_FILE='binlog.000004',
MASTER_LOG_POS=663;
第六步:启动同步并验证状态
根据不同版本执行启动命令:
- 8.0.22 之后版本:
START REPLICA; - 8.0.22 之前版本:
START SLAVE;
查看同步状态,确认 Slave_IO_Running 和 Slave_SQL_Running(或新版的 Replica_IO_Running)均为 Yes:
- 新版查询:
SHOW REPLICA STATUS\G; - 旧版查询:
SHOW SLAVE STATUS\G;
若看到 Last_Error 为空且 Seconds_Behind_Source 数值较小或为 NULL(表示实时同步),则配置成功。
以上就是 MySQL 8.0 实现主从复制的详细配置指南,更多关于 MySQL 数据库管理与高可用架构的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









