Linux中MySQL 双主复制的配置指南
前言
在数据驱动的时代,数据库的高可用性和数据一致性是每个企业必须考虑的重要问题。MySQL 双主复制(Master-Master Replication)提供了一种有效的解决方案,通过配置两台服务器互为主从,保证数据的实时同步和高可用性。本文将详细介绍如何配置基于 GTID 的 MySQL 双主复制,并进行测试验证。
配置基于GTID的复制模式
GTID(全局事务标识符)是 MySQL 提供的一种新型复制方式,它简化了主从复制的配置和管理,确保数据的一致性和完整性。在配置 MySQL 双主复制之前,我们需要确保两台主服务器都启用了 GTID 模式。
第一台主服务器配置
主服务器配置
首先,我们需要修改第一台主服务器的配置文件 /etc/my.cnf,添加以下内容:
server-id = 100 log_bin = mysql-bin gtid_mode = ON enforce_gtid_consistency = true
这些配置项的作用如下:
server-id:设置服务器的唯一标识符。log_bin:启用二进制日志记录。gtid_mode:启用 GTID 模式。enforce_gtid_consistency:强制 GTID 一致性。
修改完配置文件后,重启 MySQL 服务使配置生效:
systemctl restart mysqld
创建具有复制权限的用户
接下来,我们需要创建一个具有复制权限的用户,用于两台服务器之间的同步:
grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234'; flush privileges; show master status\G;
这些 SQL 命令的作用如下:
grant replication slave:授予用户复制权限。flush privileges:刷新权限,使之生效。show master status:查看主服务器的状态。
启动从服务
在创建好用户之后,进入 MySQL 数据库执行以下命令,将另一台主服务器配置为从服务器:
mysql -uroot -pABCabc-123
change master to master_host="192.168.192.111", master_user="repluser", master_password="Abc-1234", master_auto_position=1;
启动从服务:
start slave;
第二台主服务器配置
主服务器配置
在第二台主服务器上,同样需要修改配置文件 /etc/my.cnf,添加以下内容:
server-id = 101 log_bin = mysql-bin gtid_mode = ON enforce_gtid_consistency = true
重启 MySQL 服务:
systemctl restart mysqld
创建具有复制权限的用户
创建具有复制权限的用户:
grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234'; flush privileges; show master status\G;
启动从服务
进入 MySQL 数据库执行以下命令,将第一台主服务器配置为从服务器:
mysql -uroot -pABCabc-123
change master to master_host="192.168.192.100", master_user="repluser", master_password="Abc-1234", master_auto_position=1;
启动从服务:
start slave;


测试双主复制配置
第一台主服务器测试
在第一台主服务器上,向 hello 数据库的 test 表插入数据,并查看数据同步情况:
mysql> insert into hello.test values(2222); Query OK, 1 row affected (0.01 sec) mysql> select * from hello.test; +--------+ | num | +--------+ | 111111 | | 2222 | +--------+ 2 rows in set (0.00 sec) mysql> select * from hello.test; +---------+ | num | +---------+ | 111111 | | 2222 | | 3333333 | +---------+ 3 rows in set (0.01 sec)
第二台主服务器测试
在第二台主服务器上,查看刚刚插入的数据,并插入新的数据:
mysql> select * from hello.test; +--------+ | num | +--------+ | 111111 | | 2222 | +--------+ 2 rows in set (0.00 sec) mysql> insert into hello.test values(3333333); Query OK, 1 row affected (0.02 sec) mysql> select * from hello.test; +---------+ | num | +---------+ | 111111 | | 2222 | | 3333333 | +---------+ 3 rows in set (0.00 sec)
总结
通过以上配置和测试,我们成功地实现了 MySQL 双主复制。此配置不仅提高了数据库的可用性,还确保了数据的一致性。在实际生产环境中,这种配置可以极大地减少数据丢失的风险,提升系统的容灾能力。希望本文对您在 MySQL 双主复制的配置上有所帮助。如果有任何问题或建议,欢迎留言讨论。
以上就是Linux中MySQL 双主复制的配置指南的详细内容,更多关于Linux MySQL双主复制的资料请关注脚本之家其它相关文章!
相关文章
navicat如何利用sql语句查询表所有字段的字段名、类型及长度
Navicat使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息,下面这篇文章主要给大家介绍了关于navicat如何利用sql语句查询表所有字段的字段名、类型及长度的相关资料,需要的朋友可以参考下2023-05-05
MySQL中CONCAT和GROUP_CONCAT方法的区别详解
本文主要介绍了MySQL中CONCAT和GROUP_CONCAT方法的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-01-01


最新评论