首页 > 数据库 >Mysql主主同步配置方法

Mysql主主同步配置方法

时间:2022-10-12 15:07:16浏览次数:50  
标签:同步 log 主主 auto Mysql master increment mysql 服务器

环境
服务器a:172.16.0.123
服务器b:172.16.0.132
Mysql版本:5.6.22
System OS:CentOS release 6.3创建同步用户
服务器a和b分别建立一个同步用户:
mysql> grant replication slave on *.* to ‘username‘@’%’ identified by ‘pwd’;
mysql>flush privileges;修改mysql配置文件/etc/my.cnf
服务器a
[mysqld]
server-id = 1
log-bin=mysql-bin log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2 服务器b
[mysqld]
server-id = 2
log-bin = mysql-bin log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2保存之后分别重启a、b上的mysql服务:
service mysql restart注意:
1.一定要区分[mysqld] 和[mysql],如果眼花不小心在[mysql]里写就会出现:
[root@XXXX etc]# mysql
mysql: unknown variable ‘server-id=1’2.由于两台主机的地位是一样的,都可以写入数据,所以很可能会出现主键的数据冲突。比如我们建表的时候ID是使用自增的主键,如果两台主机都同时写入ID=1的数据那就冲突了。这里采用了简单的避免冲突的方法,用auto_increment_increment来控制列中的值的增量值,用auto_increment_offset来确定AUTO_INCREMENT列值的起始偏移位置:
服务器a以1、3、5、7的方式增长
服务器b以2、4、6、8的方式增长指定同步位置
查看服务器a作为主服务器时的状态:
mysql> show master status\G
***************** 1. row *****************
File: mysql-bin.000329
Position: 120
Binlog_Do_DB: helloworld
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)b服务器上:
mysql>change master to master_host=’172.16.0.123, master_user=’hello’, master_password=’world’, master_log_file=’mysql-bin.000329’, master_log_pos=120;指定前先执行
mysql>stop slave;
确保线程不在运行状态然后以同样的方法设置在a服务器上指定b服务器的同步位置
接着分别在服务器a、b上启动服务器线程:
mysql>start slave;查看服务器a、b的从服务器状态:
mysql> show slave status\G
***************** 1. row *****************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.0.123
Master_User: hello
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000329
Read_Master_Log_Pos: 120
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000329
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: helloworld
Replicate_Ignore_DB: mysql

1 row in set (0.00 sec)其中
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示状态正常注意:
1.如果Slave_IO_Running: No 则需要检查change master语句中的log位置和配置的log位置是否一样,还有log文件名是否一致。
2.在show master status\G 之前可以加锁来保证数据不被别人操作 flush tables with read lock;指定完同步位置之后再用unlock tables;来解锁

标签:同步,log,主主,auto,Mysql,master,increment,mysql,服务器
From: https://blog.51cto.com/u_15826214/5750749

相关文章

  • MySQL存储IP地址的方法
    IP转数字函数inet_aton()mysql>selectinet_aton('192.168.1.1');+--------------------------+|inet_aton('192.168.1.1')|+--------------------------+|3232......
  • MySQL的语句执行顺序
    MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚......
  • 关于mysql archive存储引擎
    政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计。那些管理着海量数据仓库的企业官员常常得回答诸如“何人何时修改了什么”或者“何人何时查看了什么”......
  • mysql给表的字段加索引
    1、添加普通索引ALTERTABLE`table_name`ADDINDEXindex_name(`column`)2、添加主键索引ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)3、添加唯一索引(UNIQ......
  • MySQL5.7 添加用户、删除用户与授权
    mysql-uroot-prootMySQL5.7mysql.user表没有password字段改authentication_string;一.创建用户:命令:CREATEUSER'username'@'host'IDENTIFIEDBY'password';例子:C......
  • MYSQL explain详解
    xplain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。虽然这篇文章我写的很长,但看起来真的不会困啊,真的都是干货啊!!!!......
  • mysql事务处理用法与实例详解
    MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能2.InnoDB:支持ACID事务、行级锁、并发3.BerkeleyDB:支持事务  一......
  • 切换mysql8.0报错
    切换mysql8.0后报错SQLSTATE[HY000][2054]TheserverrequestedauthenticationmethodunknowntotheclientSQLSTATE[HY000][2054]Theserverrequestedauthent......
  • 一文读懂 MySQL 锁
    1MySQL锁简介1.1什么是锁锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是......
  • MySQL目录结构以及SQL基本概念
    MySQL目录结构1.MySQL安装目录配置文件my.ini2.MySQL数据目录几个概念数据库:文件夹表:文件数据:文件里面存储的数据SQL基本概念什么是SQL:StructuredQUer......