MySQL主主(双主)数据同步
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,1. 两台mysql都可以读写,互为主备,默认只是用一台(masterA)负责数据的写入,另一台(masterB)备用;2. masterA是masterB的主库,masterB又是masterA的主
千家信息网最后更新 2025年11月10日MySQL主主(双主)数据同步
1. 两台mysql都可以读写,互为主备,默认只是用一台(masterA)负责数据的写入,另一台(masterB)备用;
2. masterA是masterB的主库,masterB又是masterA的主库,他们互为主从;不足之处:
1. masterB可能处于抑制空闲状态(可以用他当从库,负责部分查询);
2. 主库后面提供服务的从库要等masterB先同步完了数据后才能去masterB上去同步数据,肯能会造成一定程度的同步延迟;
搭建环境
系统:CentOS7
数据库版本:5.6.36
masterA地址:192.168.188.2
masterB地址:192.168.188.3
安装目录:/usr/local/mysql/
数据目录:/data/mysql/
A与B机器都安装好了MySQL,数据库与表都提前同步好;
防火墙配置
iptables
添加mysql同学端口(默认3306)
vim /etc/sysconfig/iptables //编辑iptables文件,也可以用iptables命令来添加,不过要保存命令-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT //添加允许3306端口通过service iptables restart //重启iptables服务关闭selinux
vim /etc/selinux/config //编辑SELinux配置文件SELINUX=disabled //修改值为disabled为关闭服务器设置
masterA设置(192.168.188.2)
vim /etc/my.cnf //编辑my.cnf文件server-id=2 //增加server-id为2,一般为自己iplog_bin=test01 //设置log_bin名为test01/etc/init.d/mysqld restart //重启mysql服务mysql -uroot -p123456 //登录mysql,不要照抄,-u后面是账号,-p后面是密码grant replication slave on *.* to 'repl'@'192.168.188.3' identified by '123456'; //创建mysql账号repl,只容许指定ip访问,也可以指定ip范围192.168.188.%,其中%为通配符,表示所有;flush privileges; //刷新授权表信息flush tables with read lock; //锁定数据库表暂时无法写服务;show master status; //查看binlog文件值与pos值stop slave; //关闭同步masterB设置(192.168.188.3)
vim /etc/my.cnfserver-id=3 //增加server-id为3,一般为自己iplog_bin=test02 //设置log_bin名为test02/etc/init.d/mysqld restart //重启mysql服务mysql -uroot -p123456 //登录mysqlgrant replication slave on *.* to 'repl'@'192.168.188.2' identified by '123456'; //创建用户,允许192.168.188.2登录本机器flush privileges; //刷新授权表stop slave; //关闭同步show master status; //查看binlog文件值与pos值change master to master_host='192.168.188.2', master_user='repl', master_password='123456', master_log_file='test01.000001', master_log_pos=664383; //这里注意log_file与pos值都要对应对应A的show master status;值start slave; //开启同步masterA设置
change master to master_host='192.168.188.3', master_user='repl', master_password='123456', master_log_file='test02.000001', master_log_pos=664343; //这里log_file与pos值写的必须是B上show master status;的值start slave; //开启同步unlock tables; //解锁写测试主主
在A的test数据库下建立t1表,B上查询后有t1表,证明B能同步A修改的数据;
在B的test数据库下建立t2表,A上查询,有t2表,证明A能同步到B修改后的数据;
masterA设置
mysql -uroot -p123456 //登录mysqlmysql> use test; //切换到数据库testmysql> show tables; //查看当前数据库的所有表,这里没有一个表Empty set (0.00 sec)mysql> create table t1(`id` int(4),`name` char(40)); //插入一个表t1mysql> show tables; //查看当前数据库的表+----------------+| Tables_in_test |+----------------+| t1 |+----------------+1 row in set (0.00 sec)masterB
mysql -uroot -p123456 //登录mysqluse test; //切换到数据库testmysql> show tables; //查询同步到数据库test下出现了t1表,证明B能同步A的数据;+----------------+| Tables_in_test |+----------------+| t1 |+----------------+1 row in set (0.00 sec)create table t2(`id` int(4),`name` char(40)); //新建一个t2表,如果A能同步到,就证明A能同步到B切换masterA(省略了登录与切换数据库的命令)
mysql> show tables; //查询A的test数据库下所有的表+----------------+| Tables_in_test |+----------------+| t1 || t2 |+----------------+2 rows in set (0.00 sec)
数据
同步
数据库
服务
登录
文件
查询
切换
命令
地址
机器
目录
端口
账号
配置
主从
信息
又是
只是
同学
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
开票服务器管理系统如何报送
hgp电梯服务器
只有ldf数据库
本地浏览器数据库
网络安全渗透工程师(网警)
网络安全工程师报考哪些专业好
配置dhcp的服务器有什么要求
服务器分区时磁盘结构损坏
我国网络安全轮廓
网络安全 稳定运行
农业管理软件开发价格
海西州软件开发要多少钱
青少年网络安全有感
郑州优思安软件开发公司
数据库读取测试
英雄联盟显示一直正在连接服务器
广汽网络安全
知网检索数据库
电网的数据库
广州市全天候互联网科技有限公司
我的世界电脑版怎么找服务器号
汕头塔式服务器服务商
软件开发哪个好做
智能家电带来的网络安全隐患
数据库可视化工具java
jsp留言板无数据库
景县网络安全知识培训
打印服务器是否安全
廊坊市冀翔网络技术服务
求剑网三成女捏脸数据库