MySQL主从复制实战详解,【C转C++】 C转C++超值且好用的容器与函数。
·
MySQL主从复制配置指南
MySQL主从复制是一种常见的数据冗余和高可用性解决方案,通过将主库(Master)的数据同步到从库(Slave),实现读写分离、负载均衡或数据备份。以下是详细配置步骤。
主库配置
在主库服务器上修改MySQL配置文件(通常为my.cnf或my.ini),添加以下参数:
[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_format = ROW
binlog_do_db = your_database_name # 可选,指定需要复制的数据库
重启MySQL服务使配置生效:
systemctl restart mysql
创建用于复制的专用用户并授权:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;
获取主库当前二进制日志状态:
SHOW MASTER STATUS;
记录输出中的File(如mysql-bin.000001)和Position(如120),从库配置时需要。
从库配置
在从库服务器上修改MySQL配置文件:
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
log_bin = mysql-bin
read_only = ON # 确保从库只读
重启从库MySQL服务:
systemctl restart mysql
配置从库连接主库:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replica_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=120;
启动从库复制进程:
START SLAVE;
检查复制状态:
SHOW SLAVE STATUS\G
确认Slave_IO_Running和Slave_SQL_Running均为Yes,且Seconds_Behind_Master不为空值。
常见问题排查
主从连接失败
检查防火墙是否开放3306端口,确保主库的bind-address允许从库IP访问。
数据不一致
若从库出现错误,可尝试跳过错误事务:
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;
延迟问题
监控Seconds_Behind_Master,若延迟持续较高,需优化主库写入压力或从库硬件性能。
高级配置选项
半同步复制
在主库和从库配置中启用半同步插件,确保至少一个从库接收数据后主库才提交事务:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
GTID复制
使用全局事务标识符(GTID)简化故障恢复:
gtid_mode = ON
enforce_gtid_consistency = ON
通过以上步骤可完成MySQL主从复制的基本配置。根据实际需求调整参数,并定期监控复制状态以确保数据一致性。
更多推荐
所有评论(0)