Debian MariaDB主从复制配置步骤
导读:Debian 下 MariaDB 主从复制配置步骤 一 环境准备与前置检查 准备两台 Debian 服务器,已安装 MariaDB,网络互通,开放 3306/TCP;建议主从版本一致(如均为 10.x)。 规划唯一 server-id(取...
Debian 下 MariaDB 主从复制配置步骤
一 环境准备与前置检查
- 准备两台 Debian 服务器,已安装 MariaDB,网络互通,开放 3306/TCP;建议主从版本一致(如均为 10.x)。
- 规划唯一 server-id(取值范围 1~2^32-1),主库开启二进制日志,从库后续用于回放。
- Debian 常见配置路径为:/etc/mysql/mariadb.conf.d/50-server.cnf(或 /etc/my.cnf);确保未启用 skip-networking,并按需设置 bind-address 为服务器网卡 IP 或 0.0.0.0(仅内网环境建议)。
- 主库数据目录可通过
SHOW VARIABLES LIKE 'datadir';查看,用于确认数据一致性基线。
二 主库配置
- 编辑配置文件,在 [mysqld] 段添加或修改:
server-id=1(唯一)log-bin=mysql-bin(开启二进制日志)- 可选:
bind-address=0.0.0.0(允许远程复制;生产环境请限制来源网段)
- 重启服务:
systemctl restart mariadb - 创建复制专用账号(仅授予复制权限):
CREATE USER 'repl'@'从库IP或网段' IDENTIFIED BY '强密码';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP或网段';FLUSH PRIVILEGES;
- 锁定表以获取一致性快照(可选,强烈建议用于已有数据场景):
FLUSH TABLES WITH READ LOCK;
- 获取主库当前二进制日志位点:
SHOW MASTER STATUS;记录 File 与 Position(如:mysql-bin.000020、1441)
- 备份导出数据(在锁表期间或基于一致性快照):
mysqldump -uroot -p --single-transaction --databases 需要复制的库 > master.sql
- 解锁表:
UNLOCK TABLES;(如使用备份工具如 Percona XtraBackup,可免锁获取一致性备份)
三 从库配置
- 编辑配置文件,在 [mysqld] 段设置唯一 server-id=2(不可与主库相同)。
- 重启服务:
systemctl restart mariadb - 导入主库备份(若主库已有数据):
mysql -uroot -p < master.sql - 配置复制起点(使用上一步记录的 File/Position):
CHANGE MASTER TOMASTER_HOST='主库IP',MASTER_USER='repl',MASTER_PASSWORD='强密码',MASTER_LOG_FILE='mysql-bin.000020',MASTER_LOG_POS=1441;
- 启动复制:
START SLAVE; - 检查复制状态:
SHOW SLAVE STATUS\G,确保 Slave_IO_Running: Yes 且 Slave_SQL_Running: Yes。 - 连通性自检(可选):
mysql -h 主库IP -u repl -P 3306 -p能登录说明网络与账号正常。
四 验证与常见问题
- 验证:在主库创建库/表/数据,在从库
SELECT验证是否实时同步;也可再次执行SHOW SLAVE STATUS\G观察 Seconds_Behind_Master 是否收敛。 - 常见故障排查:
- 认证或网络失败:核对复制账号、密码、来源 IP 与 3306 连通性;
bind-address与安全组/防火墙策略是否正确。 - 位点不匹配:确认
CHANGE MASTER TO使用的 File/Position 来自主库SHOW MASTER STATUS的当前值;必要时重新导入一致性备份后设置起点。 - 从库落后或中断:查看错误日志与
SHOW SLAVE STATUS\G的 Last_Error/Last_SQL_Error;修复后START SLAVE;继续。 - 已有数据未同步:未做一致性快照或未导入备份会导致从库缺失数据,需补做备份导入并校准位点。
- 认证或网络失败:核对复制账号、密码、来源 IP 与 3306 连通性;
五 进阶与扩展
- 基于 GTID 的复制(推荐,便于故障切换与一致性):
- 主从配置
server-id,主库启用log-bin;从库执行:CHANGE MASTER TO ... , MASTER_USE_GTID=slave_pos;START SLAVE;
- 状态检查同样关注 Slave_IO_Running/Slave_SQL_Running 为 Yes。
- 主从配置
- 一主多从:为多台从库分别创建复制账号,重复“从库配置”步骤即可横向扩展读能力。
- 多主一从(多通道):MariaDB 支持命名通道的多源复制,例如:
CHANGE MASTER 'r1' TO ... ;CHANGE MASTER 'r2' TO ... ;- 使用
SHOW ALL SLAVES STATUS\G查看各通道状态。
- 双主复制要点:双向
server-id唯一、各自开启log-bin与必要的log-slave-updates,并通过auto_increment_increment/auto_increment_offset避免主键冲突。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB主从复制配置步骤
本文地址: https://pptw.com/jishu/753731.html
