mysql 主主复制
需要两台MySQL主机做服务器:
MySQL的创建方法参见:创建MySQL数据库
Server-1:192.168.0.1
Server-2:192.168.0.2
一、创建并授权用户
这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库
在Server-1上:
创建一个充许Server-1来访问的用户server2,密码为:server2
mysql> GRANT REPLICATION SLAVE ON *.*
> TO 'server2'@'192.168.0.2' IDENTIFIED BY 'server2';
在Server-2上:
创建一个充许Server-1来访问的用户server1,密码为:server1
mysql> GRANT REPLICATION SLAVE ON *.*
> TO 'server1'@'192.168.0.1' IDENTIFIED BY 'server1';
二、修改MySQL主配置文件
在MySQL的主配置文件中修改/添加如下内容:
Server-1上:
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2
auto-increment-offset = 1
replicate-ignore-db =mysql
# service mysqld restart
Server-2上:
[mysqld]
server-id = 20
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2
auto-increment-offset = 2
replicate-ignore-db =mysql
# service mysqld restart
注:二都只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
replicate-do-db 指定同步的数据库,我们只在两台服务器间同步mydb数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2
三、复制其中一台服务器的数据库到别外一台服务器
这一步中谁做为源数据不重要,重要的是在正式的复制(Replication)开始之前两台服务都能准备的反应彼此的数据。
我们可以先从源数据库中导出数据到备份文件,这里我们使用mysqldump命令
以Server-1上数据库为源数据库
备份数据前先锁表,保证数据一致性
mysql> FLUSH TABLES WITH READ LOCK;
> SHOW MASTER STATUS;
+-----------------+------------+----------------+--------------------+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+------------+----------------+--------------------+
|mysql-bin.000006 | 213 | | |
+-----------------+------------+----------------+--------------------+
1 row in set (0.01 sec)
该结果显示,源服务器现在处于6号二进制文件的213位置
开始备份数据库
# mysqldump --user=root -p mydb > /tmp/mydb.sql
备份完毕,现在可以解锁数据库表
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
四、将备份数据导入Server-2
先在Server-2上创建一个与mydb同名的空数据库
# mysql
> CREATE DATABASE mydb;
>\q
# scp 192.168.0.1:/tmp/mydb.sql ./
# mysql -uroot -p mydb < /tmp/mydb.sql
此时,我们需要注意当前服务器的二进制日志的位置
# mysql
> LOCK TALBES WITH READ LOCK;
> SHOW MASTER STATUS;
+-----------------+------------+----------------+--------------------+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+------------+----------------+--------------------+
|mysql-bin.000001 | 106 | | |
+-----------------+------------+----------------+--------------------+
1 row in set (0.00 sec)
> UNLOCK TABLES;
> \q
五、互相通告二进制日志位置
在Server-1上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.0.2',
> MASTER_USER='master1',
> MASTER_PASSWORD='master1',
> MASTER_LOG_FILE='mysql-bin.000001',
> MASTER_LOG_POS=106;
在Server-2上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.0.1',
> MASTER_USER='master2',
> MASTER_PASSWORD='master2',
> MASTER_LOG_FILE='mysql-bin.000006',
> MASTER_LOG_POS=213;
六、启动复制(Replication)功能
在两台主机上分别执行
# mysql
> START SLAVE;
配置到此完成!
测试:
在任意一台服务器上创建一个数据库
# mysql
> CREATE DATABASE repltest;
> USE repltest;
> CREATE TABLE test(
> name char(30));
> \q
#
在另一台服务器上查看数据库信息:
# mysql
> SHOW DATABASES;
结果中将显示有一个名为replrtest的数据库
转载于:https://blog.51cto.com/kkkkkk/1181674
mysql 主主复制相关推荐
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- mysql主主复制、主从复制、半同步的实现
实验前提:两台服务器 Master server:172.16.23.1 slave server:172.16.23.2 一.mysql主从服务器实现 简单介绍: MySQL支持单向.异步复制,复制 ...
- mysql 主从,主主,主主复制时的主键冲突解决
原理:slave 的i/o thread ,不断的去master抓取 bin_log, 写入到本地relay_log 然后sql thread不断的更新slave的数据 把主服务器所有的数据复制给从服 ...
- Mysql之主从复制及主主复制
环境: 2台数据库服务器(centos6.5,mysql5.6) 假设ip为192.168.1.11和192.168.1.12 主从复制 192.168.1.11 为主数据库服务器 192.168. ...
- keepalive 配合mysql主主复制
keepalive安装(配合mysql主主复制) 系统:centos5.5_64 #vip为程序读取mysql的IP,应和程序服务器的网卡一个网段 主库实际IP 192.168.10.48 从库实 ...
- 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
- mysql主从复制,半同步,主主复制架构的实现
mysql的数据同步功能,不仅在一定程度上提供数据库查询时的负载均衡,而且为实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助.而数据的同步功能可以通过主从复制来实现,而主从复制是异步进行的,并且 ...
- php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制
Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...
- linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...
理论部分,在之前的文章已经说明过了,详见: 繁星亮与鲍包包:[理论研究]业务系统高可用及负载均衡zhuanlan.zhihu.com 上一篇已经讲述对2台Mysql服务器做主主复制,实现Mysql数 ...
- Mysql主主复制架构配置
MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任 何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器 互为主从,并且都能向外提供服务. 这就比使用主从复制 ...
最新文章
- 无线信标功能调试-2021-3-9-HALL检测与主控接口
- JS字符串的下划线命名和驼峰命名转换
- linux查看硬件信息的命令(图文)
- android cmd
- jboss、weblogic介绍
- html¥符号代码是什么,html怎么特殊符号赋
- docker学习3-虚拟网络模式
- Visio从安装到使用完整版
- 珠宝电商探索之路实战分享
- Image Processing in the Spatial Domain 空间域图像处理
- 学习突围3 - 关于精力
- [PTA]习题9-3 平面向量加法
- c# chart缩放,局部放大
- 编写一个简单Java程序,计算银行年存款的本息
- Task02 python与excel
- php 上标和下标,网页中各种上标和下标的应用实例
- 2020大二下期学期计划
- 让 Nginx 支持 WAF 防护功能web防火墙 - 沧海一粟 - Web系统架构与服务器运维,php开发...
- ubuntu下以管理员权限开机自启动自己的程序
- Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller 1c2d
热门文章
- BP神经网络:feedforwardnet版回归预测
- 我的世界物品java修改代码大全,我的世界秘籍_物品代码秘籍中文大全_蚕豆网攻略...
- winform利用html开发,.NET使用Cefsharp开发winform项目入门示例
- 全国计算机二级基础知识ppt,有关全国计算机二级基础知识.ppt
- Matlab曲线标记间距自定义
- softmax回归的从零开始实现
- AI学习笔记(十)卷积神经网络
- 使用Bert/ERNIE进行中文短文本分类(附数据集)
- 2019斯坦福CS224n深度学习自然语言处理笔记(1)Word2Vec与Glove
- 深度学习 目标检测 算法大全列表