MySQL主主(双主)数据同步
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,1. 两台mysql都可以读写,互为主备,默认只是用一台(masterA)负责数据的写入,另一台(masterB)备用;2. masterA是masterB的主库,masterB又是masterA的主
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
mysql 引入数据库
软件开发 许可文件
徐州计算机网络技术报价
软件开发几年可以晋升主管
天龙小蜜登录连接服务器慢
服务器有哪些安全控制选项
温州百诚互联网络科技
网络安全服务手抄报画
网络安全工作由负责
广东招聘网络技术
上古世纪服务器端
广东江门网络安全宣传
用友oa数据库
万方数据库怎样查询论文检索
采集服务器属于什么固定资产
家政公司数据库营销
网站建设个性化软件开发支持
河南特色软件开发售后保障
供电公司国家网络安全宣传周
通讯网络技术培训班
对话网络安全守护者的话
软件开发专业的二本好院校
数据库中窗体与表的关系
网络安全监测工作原理
openerp数据库手册
亚马逊数据库系统2019
太原政务软件开发报价
程序员网络安全问题
松江区智能化软件开发优势
如何部署gpu服务器