MySQL主从同步配置教程

需积分: 9 3 下载量 130 浏览量 更新于2024-09-18 收藏 94KB PDF 举报
"MySQL主从同步是数据库高可用性和负载均衡的一种常见策略,它允许数据在主数据库(Master)和从数据库(Slave)之间实时或近实时地复制。这种配置可以确保数据的安全性,因为从库可以作为备用,一旦主库出现问题,可以快速接管。此外,从库也可以用于读取密集型的应用,减轻主库的压力。 在上述环境中,我们有两个CentOS 5.2系统,分别运行MySQL 5.1.35,主服务器IP为192.168.1.22,从服务器IP为192.168.1.33。下面是配置步骤: **主服务器配置:** 1. **创建复制用户:** 首先,你需要在主服务器上创建一个用于复制的用户,例如`repl`,并赋予`REPLICATION SLAVE`权限。这样从服务器才能连接并获取数据变更。 ```sql mysql> grant replication slave on *.* to 'repl'@'192.168.1.33' identified by 'repl'; ``` 2. **修改配置文件:** 编辑`/etc/my.cnf`,设置`server-id`为1,并开启二进制日志(`log-bin`),记录所有更改操作,如: ``` [mysqld] server-id = 1 log-bin = mysql-bin ``` 3. **重启MySQL服务:** 应用配置更改,通常通过`mysqld_safe --user=mysql &`命令启动MySQL服务。 4. **锁定表进行备份:** 在执行数据库备份之前,使用`FLUSH TABLES WITH READ LOCK`命令锁定所有表,以确保备份时数据的一致性。 5. **获取binlog信息:** 使用`SHOW MASTER STATUS;`命令获取当前的binlog文件名和位置,这是从库初始化复制的起点。 6. **备份数据库:** 使用`mysqldump`命令备份要同步的数据库,例如`mysqldump test > test.sql`。 7. **解锁表:** 备份完成后,解锁所有表以恢复正常操作。 ```sql mysql> unlock tables; ``` **从服务器配置:** 1. **修改配置文件:** 类似于主服务器,编辑`/etc/my.cnf`,设置`server-id`为2,确保与主服务器不同。 2. **启动从数据库:** 启动MySQL服务。 3. **设置从库:** 连接到从服务器的MySQL,使用`CHANGE MASTER TO`命令指定主服务器的连接信息和binlog起始点,如: ```sql mysql> change master to -> master_host='192.168.1.22', -> master_user='repl', -> master_password='repl', -> master_log_file='mysql-bin.000001', -> master_log_pos=106; ``` 4. **开始复制:** 使用`START SLAVE;`命令启动从库的复制过程。 至此,主从同步配置基本完成。监控从库的状态,确保复制正常进行,可以通过`SHOW SLAVE STATUS\G;`查看复制进度和状态。如果一切正常,主库上的数据更改将被实时地复制到从库。** 注意:实际操作中,应根据具体环境调整配置,并确保网络安全,防止未授权访问。此外,定期检查和维护主从同步状态至关重要,以便及时发现和解决可能出现的问题。"