2019独角兽企业重金招聘Python工程师标准>>>

MySQL 主主同步

准备工作

设备: 服务器A 10.1.1.7 服务器B 10.1.1.8

OS:CentOS 7.3

目标:两台服务器主主同步,实现高可用,

安装MySQL 5.1绿色版:

wget~tar~mv~useradd~mkdir~scripts/~cp support x2~vim~chkconfig~start

配置主主同步

关防火墙

systemctl stop firewalld
systemctl disable firewalld

调整my.cnf配置

A:

vim /etc/my.cnf
~
[mysqld]
server-id       = 1
auto_increment_offset = 1
auto_increment_increment = 2log-bin=mysql-bin
log-slave-updates

B:

vim /etc/my.cnf
~
[mysqld]
server-id       = 2
auto_increment_offset = 2
auto_increment_increment = 2log-bin=mysql-bin
log-slave-updates

注: server-id 不能一样,可以考虑改为IP末位

auto_increment_offset 为(主键)起始值,两台设备主键相同会导致主主断裂,需要错开

auto_increment_increment 为(主键)增长值,因为起始值已经错开,增加的值为错开值即可保证不会冲突。

举个例子:四台设备a,b,c,d的主键起始值分别为1,2,3,4。增长值为4。a主键则会以1,5,9,13...增长,b主键会以2,6,10,14...增长,c主键以3,7,11,15增长,d我懒得写了。反正结果是不会出现主键冲突。两台设备则呈现主键奇偶增长。

调整数据库

将mysql命令加入PATH

echo "PATH=$PATH:/usr/local/mysql/bin/" >> .bash_profile
source !$

A上操作:A给B开户,查看A主信息

mysql -uroot
mysql> grant replication slave on *.* to 'repl'@'10.1.1.8' identified by 'axianglinux';
mysql> flush privileges;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 |      106 |              |                  |
+------------------+----------+--------------+------------------+

B上操作:B从A

mysql> change master to master_host='10.1.1.7',master_port=3306,master_user='repl',master_password='axianglinux',master_log_file='mysql-bin.000007',master_log_pos=106;
mysql> start slave;
mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.1.1.7Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000007Read_Master_Log_Pos: 106Relay_Log_File: axiang-02-relay-bin.000002Relay_Log_Pos: 251Relay_Master_Log_File: mysql-bin.000007Slave_IO_Running: YesSlave_SQL_Running: Yes
~

反着再来一遍 B上操作:B给A开户,查看B主信息

grant replication slave on *.* to 'repl'@'10.1.1.7' identified by 'axianglinux'
flush privileges;
show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 |      462 |              |                  |
+------------------+----------+--------------+------------------+

A上操作:A从B

change master to master_host='10.1.1.8',master_port=3306,master_user='repl',master_password='axianglinux',master_log_file='mysql-bin.000009',master_log_pos=462;
start slave;
show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.1.1.8Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000009Read_Master_Log_Pos: 622Relay_Log_File: axiang-01-relay-bin.000002Relay_Log_Pos: 331Relay_Master_Log_File: mysql-bin.000009Slave_IO_Running: YesSlave_SQL_Running: Yes
~

测试

A:

mysql> grant all on *.* to 'usera'@'127.0.0.1';mysql> create database dbusera;

B:

mysql> select user,host,password from mysql.user;
+-------+-----------+-------------------------------------------+
| user  | host      | password                                  |
+-------+-----------+-------------------------------------------+
| root  | localhost |                                           |
| root  | axiang-02 |                                           |
| root  | 127.0.0.1 |                                           |
|       | localhost |                                           |
|       | axiang-02 |                                           |
| repl  | 10.1.1.7  | *8E1A3402D66F8DDD8D9D19596B706C6D238C0F34 |
| usera | 127.0.0.1 |                                           |
+-------+-----------+-------------------------------------------+
7 rows in set (0.01 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dbusera            |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.01 sec)mysql> create database dbuserb-> ;
Query OK, 1 row affected (0.00 sec)

A:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dbusera            |
| dbuserb            |
| mysql              |
| test               |
| wordpress          |
+--------------------+
  • 因为A上有wordpress库,B没有,对wordPress的操作会导致B从A断裂

恢复

A:

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 |      945 |              |                  |
+------------------+----------+--------------+------------------+

B:

mysql> stop slave-> ;
Query OK, 0 rows affected (0.02 sec)mysql> change master to master_host='10.1.1.7',master_port=3306,master_user='repl',master_password='axianglinux',master_log_file='mysql-bin.000008',master_log_pos=945;
Query OK, 0 rows affected (0.01 sec)mysql> start slave;
Query OK, 0 rows affected (0.02 sec)mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.1.1.7Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000008Read_Master_Log_Pos: 945Relay_Log_File: axiang-02-relay-bin.000002Relay_Log_Pos: 251Relay_Master_Log_File: mysql-bin.000008Slave_IO_Running: YesSlave_SQL_Running: Yes
~
  • 以上实验追求简单,实际生产环境有写入的情况需先备份数据
  • mysqldump备份需要锁表,innobackup貌似不用
  • 从的logbin内的Pos点可以断点续传。后面主从逻辑不出错则可以从旧Pos开启

转载于:https://my.oschina.net/u/3579690/blog/1572420

14-4-5 17 MySQL 主主同步相关推荐

  1. mysql1.2.17,17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步...

    - 17.1 MySQL主从介绍 - 17.2 准备工作 - 17.3 配置主 - 17.4 配置从 - 17.5 测试主从同步 # 17.1 MySQL主从介绍 -  MySQL主从又叫做Repli ...

  2. 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步

    2019独角兽企业重金招聘Python工程师标准>>> 第十七章 MySQL主从配置 17.1 MySQL主从介绍 MySQL主从又叫做Replication.AB复制.简单讲就是A ...

  3. 17.1 MySQL主从介绍;17.2 准备工作;17.3 配置主;17.4 配置从;17.5 测试主从同步...

    17.1 MySQL主从介绍 1. MySQL主从又叫做Replication.AB复制.简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 2. MySQL ...

  4. MYSQL 的 MASTER到MASTER的主主循环同步

    刚刚抽空做了一下MYSQL 的主主同步. 把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST 1.环境描述.    主机:192.168.0.231(A)    主机:19 ...

  5. mysql主主同步冲突_MySQL主主同步主键冲突处理

    两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:192.168.0 ...

  6. MySQL主从、主主、半同步节点架构的的原理及实验总结

    一.原理及概念: MySQL 主从复制概念 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来 ...

  7. MySql主主(主从)同步配置详解

    一.MySQL复制概述 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等 ...

  8. 生产环境mysql主主同步主键冲突处理

    收到短信报警,两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:19 ...

  9. MySQL数据库的主主同步配置

    一.架构方案思路 1.两台mysql都可读写,互为主备.本文的实验中:默认只使用一台(DCGH-DB1)负责数据的写入,另一台(DCGH-DB2)备用. 2.DCGH-DB1是DCGH-DB2的主库, ...

最新文章

  1. 操作系统(三十五)连续分配管理方式
  2. python框架-Django安装使用
  3. html/css杂题
  4. 【Python CheckiO 题解】The Warriors
  5. python beautifulreport_Python unittest 之 BeautifulReport可视化报告
  6. ajax返回html页面执行,【提问】ajax请求返回整个html页面
  7. css中的xpath,使用XPath选择CSS类
  8. html页面怎么添加打印,在网页中添加打印按钮或链接的方法
  9. Lettuce替换Jedis操作Redis缓存
  10. (转载)Hadoop常用SDK系列五 TotalOrderPartitioner
  11. mysql 统计本月的_MySql查询当天、本周、本月、本季度、本年的数据
  12. 在vs2008中编译(调试)eMule0.50a以及veryCD版的easyMule
  13. UDP编程与Socket
  14. 汇智创科机器人,汇智创科机器人加盟
  15. MVP、EMC、CRM、IoT、边缘计算盒子、系统群控、数字化赋能、EMS、冷媒
  16. 24c512 c语言程序,msp430读写24c512程序
  17. vscode remote-ssh连接ubuntu子系统提示错误:WSL: VSCode server install fails on Ubuntu 19.10
  18. iOS 制作推送证书的流程 超详细!!!!!
  19. 豆瓣网的爬取和练习代码
  20. cassandra实战--物化视图(Materialized View)

热门文章

  1. 解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好?
  2. 前端三十一:标签的属性
  3. linux 常用命令摘录
  4. MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法
  5. [PHP]php发布和调用Webservice接口的案例
  6. gzcms技术开发文档
  7. dpkg and apt
  8. 网规:第1章计算机网络原理-1.6广域网与接入
  9. Android应用程序消息处理机制(Looper、Handler)分析(1)
  10. 远程如何修改Windows 2003机器名