14-4-5 17 MySQL 主主同步
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 主主同步相关推荐
- 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 ...
- 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步
2019独角兽企业重金招聘Python工程师标准>>> 第十七章 MySQL主从配置 17.1 MySQL主从介绍 MySQL主从又叫做Replication.AB复制.简单讲就是A ...
- 17.1 MySQL主从介绍;17.2 准备工作;17.3 配置主;17.4 配置从;17.5 测试主从同步...
17.1 MySQL主从介绍 1. MySQL主从又叫做Replication.AB复制.简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 2. MySQL ...
- MYSQL 的 MASTER到MASTER的主主循环同步
刚刚抽空做了一下MYSQL 的主主同步. 把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST 1.环境描述. 主机:192.168.0.231(A) 主机:19 ...
- mysql主主同步冲突_MySQL主主同步主键冲突处理
两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:192.168.0 ...
- MySQL主从、主主、半同步节点架构的的原理及实验总结
一.原理及概念: MySQL 主从复制概念 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来 ...
- MySql主主(主从)同步配置详解
一.MySQL复制概述 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等 ...
- 生产环境mysql主主同步主键冲突处理
收到短信报警,两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:19 ...
- MySQL数据库的主主同步配置
一.架构方案思路 1.两台mysql都可读写,互为主备.本文的实验中:默认只使用一台(DCGH-DB1)负责数据的写入,另一台(DCGH-DB2)备用. 2.DCGH-DB1是DCGH-DB2的主库, ...
最新文章
- 操作系统(三十五)连续分配管理方式
- python框架-Django安装使用
- html/css杂题
- 【Python CheckiO 题解】The Warriors
- python beautifulreport_Python unittest 之 BeautifulReport可视化报告
- ajax返回html页面执行,【提问】ajax请求返回整个html页面
- css中的xpath,使用XPath选择CSS类
- html页面怎么添加打印,在网页中添加打印按钮或链接的方法
- Lettuce替换Jedis操作Redis缓存
- (转载)Hadoop常用SDK系列五 TotalOrderPartitioner
- mysql 统计本月的_MySql查询当天、本周、本月、本季度、本年的数据
- 在vs2008中编译(调试)eMule0.50a以及veryCD版的easyMule
- UDP编程与Socket
- 汇智创科机器人,汇智创科机器人加盟
- MVP、EMC、CRM、IoT、边缘计算盒子、系统群控、数字化赋能、EMS、冷媒
- 24c512 c语言程序,msp430读写24c512程序
- vscode remote-ssh连接ubuntu子系统提示错误:WSL: VSCode server install fails on Ubuntu 19.10
- iOS 制作推送证书的流程 超详细!!!!!
- 豆瓣网的爬取和练习代码
- cassandra实战--物化视图(Materialized View)