MySQL主从复制配置与同步

需积分: 1 1 下载量 142 浏览量 更新于2024-09-17 收藏 3KB TXT 举报
本资源提供了一份关于MySQL主从复制的配置实例,主要涉及数据库A和B之间的互为主从同步设置,以及如何实现不同步MySQL系统数据库。配置中使用了特定的参数来过滤复制的数据库,并提供了启动和设置主从关系的SQL命令。 MySQL主从复制是一种常见的高可用性和数据冗余解决方案,它允许一个或多个从服务器(slaves)从一个主服务器(master)接收并应用数据更改。这种复制模式在分布式数据库环境、负载均衡和故障恢复等方面非常有用。以下是对主从复制配置和操作步骤的详细解释: 1. **配置文件修改**: 在服务器A和B的`/etc/my.cnf`配置文件中,分别设置了以下参数: - `server-id`: 每个服务器必须具有唯一的ID,用于区分不同的服务器。 - `binlog-do-db` 和 `binlog-ignore-db`: 这些选项定义了哪些数据库应被记录到二进制日志(binlog)中,哪些应被忽略。在这个例子中,只记录了名为`test`的数据库,而忽略了`mysql`系统数据库。 - `replicate-do-db` 和 `replicate-ignore-db`: 这些选项控制从服务器上哪些数据库应该接收主服务器的更新,同样,只复制`test`数据库,不复制`mysql`。 - `master-host`, `master-user`, `master-password`, `master-port`: 这些用于指定主服务器的地址、认证信息和端口。 - `sync-binlog=1`: 表示每次事务提交后都会立即写入二进制日志,确保高一致性。 - `log-bin=mysql-bin`: 开启二进制日志功能,并设置日志文件名。 2. **主从同步操作**: - 首先,停止从服务器的奴隶服务 (`Slavestop`)。 - 清除主服务器和从服务器的旧主从关系 (`Resetmaster`)。 - 分别在A和B上为复制用户`repl`赋予权限,允许其从对应IP连接到对方服务器。 - 使用`showmasterstatus`命令查看主服务器当前的二进制日志文件名和位置,这些信息将在后续的`change master`命令中用到。 - 在从服务器上,使用`change master`命令设置新的主服务器信息,包括主机地址、用户名、密码、端口、日志文件名和位置。 - 最后,启动从服务器的奴隶服务,开始同步。 通过上述步骤,A和B实现了互为主从的配置,只同步`test`数据库,且彼此可以处理对方的写入请求,从而达到数据的同步。这样的配置有助于提高系统的可靠性和数据安全性,但请注意,实际环境中还需要考虑网络延迟、性能影响以及数据一致性等问题。在生产环境中,应根据实际需求进行调整和优化。