MySQL主主(双主)数据同步
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,1. 两台mysql都可以读写,互为主备,默认只是用一台(masterA)负责数据的写入,另一台(masterB)备用;2. masterA是masterB的主库,masterB又是masterA的主
千家信息网最后更新 2025年02月01日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; //切换到数据库test
mysql> 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安全错误
数据库的锁怎样保障安全
网络安全宣传周 答题
山东超频服务器咨询报价
ff14新手怎么看服务器
广发数据库崩溃
万方数据库医学论文
河南正数网络技术有限公司挂牌
我的世界搭建云服务器教程
软件开发需要什么文章
猛鬼宿舍修改服务器版
靖江网络技术有限公司
信息库数据库政策库
济南市服务器代理哪家好
饥荒服务器网吧可以用吗
2台服务器如何共用一个ip
软件开发中绿灯测试
南京博朗软件开发公司在哪里
网络技术公司纳税标准
传奇服务器登陆界面
总是在连接至steam服务器
数据库如何激活
麻将软件开发编程
世界上最最安全的服务器
cf美国服务器2.0
oracle数据库赋权限
数据库文件格式后缀
数据库中并发的定义
联想服务器 管理口安装系统
口袋网络技术
网络技术推广服务入什么科目
广东网络技术基础期末考试