我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中怎么实现主主同步

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中怎么实现主主同步

本篇文章为大家展示了mysql中怎么实现主主同步,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

A服务器:
host 192.168.1.101
port 3306
B服务器:
host 192.168.1.102
port 3306
 
1,授权用户:
A服务器
mysql>grant replication slave,file on *.* to  identified by '1234569';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
B服务器
mysql>grant replication slave,file on *.* to  identified by '1234568';
Query OK, 0 rows affected (0.01 sec)
> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
2,配置文件
A服务器
log-bin=mysql-bin
server-id   = 1
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
master-host     =   192.168.1.102
master-user     =   repl8
master-password =   1234568
master-port     = 3306
 
B服务器
 
log-bin=mysql-bin
server-id   = 2
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset = 2
master-host     =   192.168.1.101
master-user     =   repl9
master-password =   1234569
master-port     = 3306                                                                    
 
 
启动服务器就ok了
 
 
--------------------------------------------------
Q: 当在另一台机器上登录MySQL时出现如下错误:
 
ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)
 
A: 原因是MySQL考虑到安全因素,默认配置只让从本地登录
 
打开 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0
 
重启mysql : sudo /etc/init.d/mysql restart
 
 
========================================
101 增加,102不同步   ?????????
mysql -h292.168.1.102 -urepl8 -p1234568        ok
 
102 增加,101 同步
mysql -h292.168.1.101 -urepl9 -p1234569       ok
 
比较两组的show slave status\G;
102
 
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB: test
        Replicate_Ignore_DB: mysql
 
 
sudo /etc/init.d/mysql restart
sudo service mysql restart   以后就变成:lave_IO_Running: YES
 
 
 
出现的问题(多主自增长ID重复)
 
解决方法:
我们只要保证两台服务器上插入的自增长数据不同就可以了
如:A查奇数ID,B插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了
 
在这里我们在A,B上加入参数,以实现奇偶插入
 
A:my.ini上加入参数
 
auto_increment_offset = 1
auto_increment_increment = 2
这样A的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了
 
B:my.ini上加入参数
 
auto_increment_offset = 2
auto_increment_increment = 2
这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了
 
可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。当然,你还可以使用3台,4台,或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的MySQL可以同时有几十台主服务器,而不会出现自增长ID重复。
 
在这里我们说的是2台MYSQL服务器,你也可以扩展到多台,实现方法类似
A -> B -> C-> D ->A
这样一个环形的备份结构就形成了,最后可要记住 自增长ID(主键)要设计好哦,否则会出错的。

上述内容就是mysql中怎么实现主主同步,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中怎么实现主主同步

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql主从同步怎么实现

mysql 主从同步实现什么是 MySQL 主从同步?MySQL 主从同步是一种数据复制机制,其中一台服务器(主服务器)将数据更改复制到一台或多台其他服务器(从服务器)。如何实现 MySQL 主从同步?先决条件:主服务器和从服务器之
mysql主从同步怎么实现
2024-05-22

MySQL是如何实现主备同步

主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案。 在生产环境中,会有很多不可控因素,例如数据库服务挂了。为了保证应用的高可用,数据库也必须要是高可用的。 因此在生产环境中,都会采用主备同步。在应
2022-05-26

编程热搜

目录