Linux下MySQL主主同步
- 主主复制:主从相互授权连接,读取对方binlog日志并更新到本地数据库的过程;只要对方数据改变,自己就跟着改变。
本节介绍主主复制模式的配置。
前提条件
已安装MySQL两台服务器。服务器规划示例如表1所示。
服务器名称 |
服务器IP |
---|---|
MySQL server1 |
10.10.10.31 |
MySQL server2 |
10.10.10.32 |
操作步骤
- 以root用户登录MySQL server1。
- 配置MySQL server1的my.cnf文件。
- 执行以下命令,编辑配置文件。
# vi /etc/my.cnf
- 在[mysqld]部分添加下面加黑参数。其中,“bind-address”参数请修改为MySQL服务器的地址。
说明:
本步骤中的参数为新增,请保留3.b.i步骤中的其他配置参数。
#主标服务标识号,必需唯一
server-id = 1
# the bind ip
bind-address = 10.10.10.30 #log_bin日志名称格式:${datadir}/mysql-bin.0000*
log_bin = mysql-bin
log_bin_trust_function_creators=1 #日志内容记录格式
binlog_format = mixed #不建议使用这种配置,如果跨域操作会出现同步异常。
# binlog_do_db = dbname
# binlog_ignore_db = dbname #设置需要同步的数据库名,多个数据库时配置多次该语句。
replicate-wild-do-table=apigwdb.%
replicate-wild-do-table=apimarkdb.%
replicate-wild-do-table=livedata.%
replicate-wild-do-table=mqs_web.%
replicate-wild-do-table=iot_web.%
replicate-wild-do-table=roma_fdi_prod.%
replicate-wild-do-table=roma_quartz.%
replicate-wild-do-table=roma_web.%
replicate-wild-do-table=roma_config. log-slave-updates #经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。
sync_binlog = 1 #auto_increment_offset=1设置步长,这里设置为1,这样Master的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID
auto_increment_offset = 1 #auto_increment_increment=n有多少台服务器,n就设置为多少
auto_increment_increment = 2 #忽略所有复制产生的错误
slave-skip-errors = all说明:
replicate-wild-do-table参数的配置请参考表9。
- 修改完成后,执行:wq! 保存退出。
- 重启MySQL。
# cd /opt/mysql/support-files
# mysql.server stop
# mysql.server start
- 查看MySQL状态。
# mysql.server status
- 执行以下命令,编辑配置文件。
- 以root用户登录MySQL server2。
- 配置MySQL server2的my.cnf文件。
- 执行以下命令,编辑配置文件。
# vi /etc/my.cnf
- 在[mysqld]部分添加下面加黑参数。其中,“bind-address”参数请修改为MySQL服务器的地址。
说明:
本步骤中的参数为新增,请保留3.b.i步骤中的其他配置参数。
#主标服务标识号,必需唯一(区别于server11)
server-id = 2 # the bind ip
bind-address = 10.10.10.31 #log_bin日志名称格式:${datadir}/mysql-bin.0000*
log_bin = mysql-bin
log_bin_trust_function_creators=1 #日志内容记录格式
binlog_format = mixed #不建议适用这种配置,如果跨域操作会出现同步异常。
# binlog_do_db = dbname
# binlog_ignore_db = dbname #设置需要同步的数据库名,多个数据库时配置多次该语句。
replicate-wild-do-table=apigwdb.%
replicate-wild-do-table=apimarkdb.%
replicate-wild-do-table=livedata.%
replicate-wild-do-table=mqs_web.%
replicate-wild-do-table=iot_web.%
replicate-wild-do-table=roma_fdi_prod.%
replicate-wild-do-table=roma_quartz.%
replicate-wild-do-table=roma_web.%
replicate-wild-do-table=roma_config.% log-slave-updates #经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。
sync_binlog = 1 #auto_increment_offset=1设置步长,这里设置为2,这样Master的auto_increment字段产生的数值是:2,4,6,8 …等偶数ID
auto_increment_offset = 2 #auto_increment_increment=n有多少台服务器,n就设置为多少,
auto_increment_increment = 2 #忽略所有复制产生的错误
slave-skip-errors = all - 修改完成后,执行:wq! 保存退出。
- 重启MySQL。
# cd /opt/mysql/support-files
# mysql.server stop
# mysql.server start
- 查看MySQL状态。
# mysql.server status
- 执行以下命令,编辑配置文件。
- 设置MySQL server2同步更新MySQL server1。
- 以root用户登录MySQL server1。
- 进入MySQL控制台。
# cd /opt/mysql/bin
# mysql -u root -p
按照提示信息输入待连接的MySQL服务器的数据库root用户的密码:
Enter Password:
登录成功后系统显示如下类似信息:
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4381
Server version: 5.7.24-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> - 锁MySQL server1表。
mysql> flush tables with read lock;
- 查看MySQL server1状态。
mysql> show master status;
系统显示如下类似信息:
+---------------+----------+--------------+------------------+------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+------------------------------------------------+
| binlog.000004 | 194 | test | mysql | 39380c8b-aa71-11e8-8dc6-286ed488ec36:1-3319087 |
+---------------+----------+--------------+------------------+------------------------------------------------+
1 row in set (0.00 sec) - 以root用户登录MySQL server2。
- 进入MySQL控制台。
# cd /opt/mysql/bin
# mysql -u root -p
按照提示信息输入待连接的MySQL服务器的数据库root用户的密码:
Enter Password:
- 停止slave同步进程。
mysql> stop slave;
- 执行同步语句。
mysql> change master to master_host='10.10.10.31',master_user='root',master_password='Password',master_log_file='binlog.000004' ,master_log_pos=194;
其中,
- master_host设置为MySQL Server1的地址。
- master_user设置为同步用户名,此处使用root用户。
- master_password设置为同步用户密码。
- master_log_file设置为MySQL Server1的show master status;命令执行结果File列的值。
- master_log_pos设置为MySQL Server1的show master status;命令执行结果Position列的值。
- 开启slave同步进程。
mysql> start slave;
- 查看slave同步信息
mysql> show slave status\G;
...
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
...若显示信息中以上两个参数为yes,即说明配置成功。
- 设置server1同步更新server2,步骤与5类似。
- 分别在MySQL Server1和MySQL Server2的控制台执行以下命令,解锁数据库表。
mysql> unlock tables;
- 检测数据库主主同步是否设置成功。
在任意MySQL创建数据库并创建表,插入数据,在另一MySQL查看是否同步成功。
Linux下MySQL主主同步的更多相关文章
- Linux下MySQL数据库主从同步配置
说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...
- Linux下 MYSQL 主从复制、同步
mysql从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能. 主从模式(A->B)的配置过程 ...
- linux下MySQL安装登录及操作
linux下MySQL安装登录及操作 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.16-0.i386.rpm MySQL-cl ...
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
- linux下mysql设置主从
一 主服务器修改 mysql的主从设置主要原理是 主数据库开启日志,并且创建从服务器专属账户,从服务器用该账户,读取到日志进行同步 准备两个mysql数据库(如何安装请查看,linux下mysql安 ...
- linux下mysql基于mycat做主从复制和读写分离之基础篇
Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...
- .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用
一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...
- Linux下mysql的常用操作
Linux下mysql的常用操作: 显示数据库 show databases; 选择数据库 use 数据库名; 显示数据库中的表 show tables; 显示数据表的结构 describe 表名; ...
- Linux下MySQL的简单操作
Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...
- windows下mysql和linux下mysql主从配置
1. linux下mysql安装版本5.6 windows下mysql版本5.7 不要问我为什么版本不一致 就是想这么搞 2. linux为主服务器 windows为从服务器 3.找到li ...
随机推荐
- 携程酒店DevOps测试实践
作者简介 王幸福,携程酒店研发部高级测试经理,负责无线自动化测试相关工作.在测试框架和平台研发.移动测试.DevOps等领域有着丰富的经验. 如今很多大型互联网公司.创新型企业都在积极地进行DevOp ...
- 《自动化平台测试开发-Python测试开发实战》第2次印刷
书籍货源比较紧张.紧张啊,如此短的时间,已经第2次印刷.第2次印刷. 第2次印刷. 同时该书已确认与台湾出版社合作翻译成繁体版,甚至有可能与国外出版社合作翻译成英文版. 2018年7月 第1次印刷 2 ...
- Excel技巧:如何绘制一份优秀的甘特图(项目管理)
作者:秦路,天善智能特约专家.资深数据分析师,数据化运营专家.擅长结合运营和数据,建立数据化运营体系. 个人公众号:秦路(微信ID:tracykanc) 今天我给大家分享的内容是如何利用Excel绘制 ...
- 前端开发个人小结 · Retrospection的博客
序 2018年转眼来到了最后一个月,算下来我进入前端之门也有一年了,虽然下半年由于忙于筹备毕业论文的相关事项,前端这一块有所放下,但是想想还是给自己这一年的学习做一个总结. 现代化软件开发确实是一个复 ...
- Python——4Dict和Set类型
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- log4p踩坑总结
log4p可以方便的打印格式化日志,在实际应用时,因没有好好理解官网中的配置文件,导致出错了几次. 现总结如下: 1. 安装 pip3 install log4p 2. 查看配置说明,请参考https ...
- 硬件小白学习之路(1)稳压芯片LM431
图稳压芯片LM431简介 偶然的机会接触到LM431这个芯片,周末晚上打发无聊的时光,查资料进行剖析. LM431的Symbol Diagram和Functional Diagram如图1所示,下面分 ...
- java反序列化-ysoserial-调试分析总结篇(4)
1.前言 这篇文章继续分析commoncollections4利用链,这篇文章是对cc2的改造,和cc3一样,cc3是对cc1的改造,cc4则是对cc2的改造,里面chained的invoke变成了i ...
- 7-3 jmu-python-回文数判断(5位数字) (10 分)
本题目要求输入一个5位自然数n,如果n的各位数字反向排列所得的自然数与n相等,则输出‘yes’,否则输出‘no’. 输入格式: 13531 输出格式: yes 输入样例1: 13531 输出样例1: ...
- java网络编程——socket实现简单的CS会话
还记得当年学计网课时用python实现一个简单的CS会话功能,这也是学习socket网络编程的第一步,现改用java重新实现,以此记录. 客户端 import java.io.*; import ja ...