特别是在 CentOS6.9 这样的成熟操作系统平台上,MySQL 的主从复制配置不仅能够实现读写分离,降低主库的访问压力,还能在主库出现故障时迅速切换到从库,保证业务连续性
本文将详细介绍如何在 CentOS6.9环境下配置 MySQL 主从复制,并提供一些实用的配置建议和故障排除方法
一、环境准备 在开始配置之前,我们需要准备两台运行 CentOS6.9 的服务器,并分别安装相同版本的 MySQL 数据库
这里假设主库 IP 为192.168.10.111,从库 IP 为192.168.10.124,MySQL 版本为5.7.21
二、安装 MySQL 在两台服务器上分别执行以下命令安装 MySQL: bash yum install mysql mysql-server 根据提示输入“y”以自动完成安装过程
安装完成后,启动 MySQL 服务并设置开机自启动: bash service mysqld start chkconfig mysqld on 三、配置主数据库 1.编辑配置文件 使用`vim` 编辑主数据库的`/etc/my.cnf` 文件,添加或修改以下配置: ini 【mysqld】 server-id =1 数据库ID,必须唯一 log-bin = /var/log/mysql/mysql-bin.log启用二进制日志 binlog-do-db = test 需要同步的数据库,多个数据库则继续添加此行 binlog-ignore-db = mysql 不需要同步的数据库 innodb_flush_log_at_trx_commit =1 为了数据持久性和一致性,配置为1 sync_binlog =1 确保二进制日志同步到磁盘 2.重启 MySQL 服务 配置完成后,重启 MySQL 服务以使配置生效: bash service mysqld restart 3.创建复制账号并授权 登录 MySQL 数据库,创建一个用于复制的用户并授予必要的权限: sql CREATE USER backup@192.168.10.124 IDENTIFIED BY 123456; GRANT REPLICATION SLAVE ON- . TO backup@192.168.10.124; FLUSH PRIVILEGES; 4.锁定表并导出数据 在进行数据同步之前,需要锁定主库上的表以防止数据变更,然后使用`mysqldump`导出数据: sql FLUSH TABLES WITH READ LOCK; 在另一个终端窗口中执行`mysqldump` 命令导出数据: bash mysqldump -h127.0.0.1 -uroot -p test > /data/backup/test.sql 导出完成后,解锁表: sql UNLOCK TABLES; 5.记录二进制日志状态 在导出数据之前,记录当前二进制日志的文件名和位置,这些信息将在配置从库时使用: sql SHOW MASTER STATUS; 四、配置从数据库 1.编辑配置文件 使用`vim` 编辑从数据库的`/etc/my.cnf` 文件,添加或修改以下配置: ini 【mysqld】 server-id =2 数据库ID,必须唯一且与主库不同 relay-log = /var/log/mysql/relay-bin.log 中继日志路径(可选) 2.重启 MySQL 服务 配置完成后,重启 MySQL 服务以使配置生效: bash service mysqld restart 3.导入主库数据 将之前从主库导出的数据文件`test.sql`复制到从数据库服务器,并导入到从数据库中: bash mysql -uroot -p test < /path/to/test.sql 4.配置复制参数 登录从数据库,执行以下 SQL 命令配置复制参数: sql STOP SLAVE; CHANGE MASTER TO MASTER_HOST=192.168.10.111, MASTER_PORT=3306, MASTER_USER=backup, MASTER_PASSWORD=123456, MASTER_LOG_FILE=mysql-bin.00000x,替换为之前记录的二进制日志文件名 MASTER_LOG_POS=xxx;替换为之前记录的二进制日志位置 START SLAVE; 5.验证复制状态 执行以下命令查看从库的复制状态,确保`Slave_IO_Running` 和`Slave_SQL_Running` 都为`Yes`: sql SHOW SLAVE STATUSG; 五、测试与故障排除 1.测试配置 在主库上创建一个新的表或插入一些数据,然后在从库上检查这些数据是否已经同步
2.常见故障排除 -Slave_IO_Running: No - 检查用户名和密码是否正确
- 检查主库和从库之间的网络连接是否畅通
- 如果使用克隆创建的从库,可能需要删除或重命名`/usr/local/mysql/data/auto.cnf` 文件
-Slave_SQL_Running: No - 检查从库上的表结构是否与主库一致
- 检查是否有权限问题或数据冲突
-主从延迟 - 优化业务逻辑,避免使用大事务
- 提高从库所在机器的性能
- 保障网络性能,避免网络延迟
- 考虑使用半同步复制减少数据丢失风险
六、总结 MySQL 的主从复制是一种强大且灵活的数据同步机制,能够在保证数据一致性的同时提高系统的可用性和负载均衡能力
在 CentOS6.9环境下配置 MySQL 主从复制需要仔细规划环境、正确安装和配置 MySQL、精心设置复制参数,并进行充分的测试和故障排除
通过遵循本文提供的步骤和建议,您可以成功搭建一个稳定、高效的 MySQL 主从复制环境,为您的业务提供坚实的数据支持