### MySQL 主从与主主配置详解 #### 一、MySQL 主从配置 **1.1 配置主服务器** 为了实现MySQL的主从复制,首先需要配置主服务器。假设我们有两台服务器作为主服务器: - **主服务器 1 IP**: 192.168.0.1 - **主服务器 2 IP**: 192.168.0.2 在主服务器 1 上进行以下配置: **步骤 1:** 修改 MySQL 配置文件 `/etc/my.conf` ```bash server-id = 1 # 设置唯一的服务器 ID,用于区分不同的节点。 log-bin = mysql-bin # 开启二进制日志记录,这是实现复制的基础。 binlog-do-db = slaveDB # 指定需要复制的数据库名称,如需复制多个数据库,可添加多行配置。 binlog-ignore-db = mysql # 指定不需要复制的数据库,通常不复制 MySQL 自身的系统数据库。 auto-increment-increment = 1 # 设置自动增长字段的增量,默认为 1。 auto-increment-offset = 2 # 设置自动增长字段的起始偏移量,确保不同服务器间自动增长字段不冲突。 ``` **步骤 2:** 授予从服务器访问权限 ```sql grant replication slave on *.* to 'user_name'@'192.168.0.2' identified by 'ahaii'; flush privileges; # 刷新权限,使更改立即生效。 ``` **步骤 3:** 开启复制 ```sql change master to master_host='192.168.0.225', master_user='user_name', master_password='ahaii', master_log_file='mysql-bin.000001', master_log_pos=80647293; start slave; ``` **步骤 4:** 重启 MySQL 服务并验证状态 ```bash service mysql restart show slave status\G ``` **1.2 配置从服务器** 在从服务器上,同样需要进行一些必要的配置。 **步骤 1:** 修改 MySQL 配置文件 `/etc/my.conf`,添加 `server-id` 参数。 ```bash server-id = 2 # 从服务器的唯一标识符,不同于主服务器的 ID。 ``` **步骤 2:** 授予主服务器访问权限,并配置复制。 ```sql grant replication slave on *.* to 'user_name'@'192.168.0.1' identified by 'ahaii'; flush privileges; change master to master_host='192.168.0.1', master_user='user_name', master_password='ahaii', master_log_file='mysql-bin.000001', master_log_pos=80647293; start slave; ``` **步骤 3:** 重启 MySQL 服务并验证状态 ```bash service mysql restart show slave status\G ``` #### 二、MySQL 主主配置 **2.1 配置主主环境** 在主主环境中,两个服务器都可以接收写操作,因此需要更复杂的配置来确保数据一致性。 **步骤 1:** 在主服务器 1 和主服务器 2 上分别进行上述主从配置中的所有步骤。 **步骤 2:** 在主服务器 1 上授予主服务器 2 访问权限,并配置复制关系。 ```sql grant replication slave on *.* to 'user_name'@'192.168.0.2' identified by 'ahaii'; flush privileges; change master to master_host='192.168.0.2', master_user='user_name', master_password='ahaii', master_log_file='mysql-bin.000001', master_log_pos=80647293; start slave; ``` **步骤 3:** 在主服务器 2 上授予主服务器 1 访问权限,并配置复制关系。 ```sql grant replication slave on *.* to 'user_name'@'192.168.0.1' identified by 'ahaii'; flush privileges; change master to master_host='192.168.0.1', master_user='user_name', master_password='ahaii', master_log_file='mysql-bin.000001', master_log_pos=80647293; start slave; ``` **步骤 4:** 重启 MySQL 服务并验证状态 ```bash service mysql restart show slave status\G ``` **2.2 注意事项** - 在主主配置中,需要特别注意避免循环复制的情况发生,可以通过合理的配置来规避。 - 确保主服务器之间的时间同步,这可以使用 NTP (Network Time Protocol) 来实现。 - 考虑使用半同步或全局事务标识符 (GTID) 复制等高级功能来增强数据的一致性。 #### 参考资料 - [MySQL 主从复制详细教程](https://www.2cto.com/database/201801/714594.html) - [MySQL 主主复制详解](https://www.cnblogs.com/zhi-leaf/p/12543503.html) 通过以上的详细步骤,您可以成功地配置MySQL的主从及主主复制环境。这种配置不仅可以提高系统的可用性和扩展性,还可以帮助实现数据的高可用性和故障转移等功能。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
- (源码)基于Arduino、Python和Web技术的太阳能监控数据管理系统.zip
- (源码)基于Arduino的CAN总线传感器与执行器通信系统.zip
- (源码)基于C++的智能电力系统通信协议实现.zip
- 用于 Java 的 JSON-RPC.zip
- 用 JavaScript 重新实现计算机科学.zip
- (源码)基于PythonOpenCVYOLOv5DeepSort的猕猴桃自动计数系统.zip
- 用 JavaScript 编写的贪吃蛇游戏 .zip
- (源码)基于ASP.NET Core的美术课程管理系统.zip