MYSQL8.0以上版本 主从复制
-
唯一性
server-id 一定要在配置文件中全局搜索确保只有一个属性(踩坑了)
确保主库和从库的server-id
在配置文件(my.cnf
或my.ini
)中唯一且不重复# 主库配置示例 [mysqld] server-id = 1 log-bin = mysql-bin binlog-do-db = your_db # 从库配置示例 [mysqld] server-id = 2
重启服务
sudo systemctl restart mysql
-- 主库操作
CREATE USER 'repl_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS; -- 记录 File(如 binlog.000002)和 Position(如 158)
-- 从库操作
STOP REPLICA;
RESET REPLICA; -- 清除所有复制元数据
CHANGE REPLICATION SOURCE TO
SOURCE_HOST = '主库IP',
SOURCE_USER = 'repl_user',
SOURCE_PASSWORD = 'password',
SOURCE_PORT = 3306,
SOURCE_LOG_FILE = 'binlog.000002', -- 替换为主库的实际日志文件名
SOURCE_LOG_POS = 158, -- 替换为主库的实际日志位置
GET_SOURCE_PUBLIC_KEY = 1; -- 若主库使用加密认证
START REPLICA;
SHOW REPLICA STATUS; -- 查看状态
这里两个都是yes就正常
如果其中有个字段显示的不是yes,异常看这里error报错字段