Ubuntu MySQL复制如何配置
导读:Ubuntu 上配置 MySQL 主从复制 一 准备与规划 准备两台 Ubuntu 服务器,分别安装 MySQL 5.7/8.0,确保网络互通(建议内网),并规划用途:主库(写)、从库(读/备)。 规划复制账号与权限:在主库创建仅用于复制...
Ubuntu 上配置 MySQL 主从复制
一 准备与规划
- 准备两台 Ubuntu 服务器,分别安装 MySQL 5.7/8.0,确保网络互通(建议内网),并规划用途:主库(写)、从库(读/备)。
- 规划复制账号与权限:在主库创建仅用于复制的账号,授予 REPLICATION SLAVE 权限。
- 规划唯一 server-id(每台不同),主库开启 二进制日志 binlog,从库建议开启 中继日志 relay_log 并设置 read_only=1。
- 建议主从时间同步(如 NTP),并尽量保持主从 MySQL 版本兼容。
二 主库 Master 配置
- 编辑配置文件(路径因版本可能为 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 下添加或修改:
- server-id = 1
- log_bin = /var/log/mysql/mysql-bin.log
- binlog_format = ROW
- sync_binlog = 1
- 可选:binlog_do_db/ignore_db 指定库(不推荐过度使用,易遗漏 DDL)
- 重启生效:sudo systemctl restart mysql
- 创建复制用户并授权:
- CREATE USER ‘replicator’@‘%’ IDENTIFIED BY ‘YourStrongPass!’;
- GRANT REPLICATION SLAVE ON . TO ‘replicator’@‘%’;
- FLUSH PRIVILEGES;
- 获取复制起点(在锁定库前执行,避免写入导致位置变化):
- FLUSH TABLES WITH READ LOCK;
- SHOW MASTER STATUS; 记录 File 与 Position(如:mysql-bin.000001 / 123)
- 备份数据(两种常用方式,二选一或结合):
- 逻辑备份:mysqldump -u root -p --all-databases --master-data > backup.sql
- 物理/热备:使用 Percona XtraBackup 等工具以减少停机
- UNLOCK TABLES;
- 将备份文件安全复制到从库(如 scp)。
三 从库 Slave 配置
- 编辑配置文件,在 [mysqld] 下添加或修改:
- server-id = 2(确保与主库不同)
- relay_log = /var/log/mysql/mysql-relay-bin.log
- log_bin = /var/log/mysql/mysql-bin.log(若从库未来可能提升为主库,建议开启)
- read_only = 1(应用端应避免使用 SUPER 账号直连写入)
- 重启生效:sudo systemctl restart mysql
- 导入主库备份:mysql -u root -p < backup.sql
- 配置复制起点并启动:
- STOP SLAVE;
- CHANGE MASTER TO
- MASTER_HOST=‘master_ip’,
- MASTER_USER=‘replicator’,
- MASTER_PASSWORD=‘YourStrongPass!’,
- MASTER_LOG_FILE=‘mysql-bin.000001’,
- MASTER_LOG_POS=123;
- START SLAVE;
- 检查复制状态:SHOW SLAVE STATUS\G,确保 Slave_IO_Running=Yes 且 Slave_SQL_Running=Yes。
四 验证与常见问题
- 验证:在主库执行建表/插入,在从库 SELECT 验证是否一致;持续观察复制延迟(Seconds_Behind_Master)。
- 常见问题与处理:
- IO/SQL 线程异常:查看从库错误日志(/var/log/mysql/error.log),常见为账号权限、网络、起点不一致或主库 binlog 被清理。
- 复制过滤配置不当:避免仅用 binlog_do_db 导致跨库 DDL 未复制,生产更推荐全库复制 + 应用层/中间件控制读写。
- 主库 binlog 过期:设置 expire_logs_days 合理保留,或基于备份策略管理。
- 版本兼容:主从版本差异过大可能导致复制异常,尽量保持版本一致或按官方兼容矩阵升级。
- 高可用思路:一主多从、读写分离、定期校验(如 pt-table-checksum)与延迟监控。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MySQL复制如何配置
本文地址: https://pptw.com/jishu/757319.html
