MySQL 5.5 一主一从(Master-Slave)复制配置方法
本文介绍了如何在 CentOS 5.6 环境下配置 MySQL 5.5.8 的主从复制(Replication)。通过设置服务器ID、二进制日志及权限,结合 mysqldump 进行初始数据同步,可实现数据自动同步至从库。
环境与目标
本配置旨在建立“一主一从”的 MySQL 架构,主库(Master)负责写入,从库(Slave)同步数据用于读取或备份。具体环境如下:
- 操作系统:CentOS Release 5.6
- 数据库版本:MySQL 5.5.8
- 主库 IP (Master):192.168.1.2
- 从库 IP (Slave):192.168.1.3
第1步:配置主库(Master)
首先修改主库配置文件 /etc/my.cnf,启用二进制日志并分配唯一 ID。
[mysqld]
server-id=1
log-bin=/var/lib/mysql/mysql-bin
datadir=/var/lib/mysql
# 为保证 InnoDB 事务在复制中的持久性和一致性,建议开启以下参数
innodb_flush_log_at_trx_commit=1
sync_binlog=1
重启 MySQL 服务使配置生效。随后登录 MySQL 命令行,创建专门用于复制的用户并授予权限:
mysql> create user repl_user@192.168.1.3;
mysql> grant replication slave on *.* to repl_user@192.168.1.3 identified by '123456';
第2步:锁定主库并记录位点
为确保数据一致性,在导出数据前需锁表停止写入,并记录当前二进制日志文件名和位置点(Position),后续从库将基于此点开始同步。
mysql> flush tables with read lock;
mysql> show master status;
请记录输出的 File(如 mysql-bin.000013)和 Position(如 7863951)值,这两项是配置从库的关键参数。
第3步:数据同步到从库
使用 mysqldump 将主库需要同步的数据库(例如 test)导出并通过管道直接导入到从库。
shell> /usr/bin/mysqldump test -uroot -padmin --opt | mysql test -uroot -padmin -h 192.168.1.3
数据导入完成后,解锁主库恢复写入操作:
mysql> unlock tables;
第4步:配置从库(Slave)
修改从库配置文件 /etc/my.cnf,设置唯一的 server-id 及其他可选过滤参数。
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
replicate-do-db=test
datadir=/var/lib/mysql
注意:server-id 必须为 1 到 2 的 32 次方之间的整数,且不能与主库相同。
第5步:初始化从库复制
登录从库 MySQL,执行以下命令指向主库地址、账号及之前记录的日志位置点。
mysql> slave stop;
mysql> change master to
master_host='192.168.1.2',
master_user='repl_user',
master_password='123456',
master_log_file='mysql-bin.000013',
master_log_pos=7863951;
第6步:启动并验证复制
启动从库同步进程,并查看状态确认 IO 和 SQL 线程是否运行正常。
mysql> start slave;
mysql> show slave status\G
完成判断:查看输出结果,确保 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes,且无报错信息。
测试时可在主库对 test 库进行增删改操作,观察从库是否实时产生相同数据。
常见问题排错
如果因 SQL 错误导致同步卡住(如找不到对应记录),可尝试跳过当前错误事务继续同步:
警告:跳过错误可能导致数据不一致,请谨慎操作并确保风险可控。
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
以上就是 MySQL 5.5 Master-Slave 主从复制配置的详细内容,更多关于 MySQL 数据库同步的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













