加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql内如何实现半同步复制

发布时间:2022-01-21 02:18:44 所属栏目:MySql教程 来源:互联网
导读:本篇文章为大家展示了Mysql中如何实现半同步复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 一、环境准备: centos系统服务器2台、一台用户做Mysql主服务器,一台用于做Mysql从服务器,配置好yum源、防火
       本篇文章为大家展示了Mysql中如何实现半同步复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
 
一、环境准备:
 
       centos系统服务器2台、一台用户做Mysql主服务器,一台用于做Mysql从服务器,配置好yum源、防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信
 
192.168.41.145   master
 
192.168.41.137  slave
 
二、准备步骤:
 
1、iptables -F && setenforce 清空防火墙策略,关闭selinux
 
2、①vim /etc/hosts
 
192.168.41.145   master     #各节点之间可以通过主机名互相通信
 
192.168.41.137  slave
 
② ntpdate 172.17.0.1  #各节点时钟服务同步
 
3、拿两台服务器都使用yum方式安装Mysql服务,要求版本一致
 
4、分别启动两台服务器mysql服务,确保服务正常.
 
三、实现步骤:
 
1、配置master主服务器
 
对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值。
 
vim /etc/my.cnf
 
server-id=1 #配置server-id,让主服务器有唯一ID号
 
log-bin=mysql-bin #打开Mysql日志,日志格式为二进制
 
skip-name-resolve#关闭名称解析,(非必须)
 
2.创建复制帐号
 
在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连master 。进行复制操作的用户会授予REPLICATION SLAVE权限。
 
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slave@'192.168.%.%' IDENTIFIED BY 'ke';
 
3.查看主服务器状态
 
在Master的数据库执行show master status,查看主服务器二进制日志状态
  
4、配置slave从服务器
 
对slave进行配置,打开中继日志,指定唯一的servr ID,设置只读权限。在配置文件加入如下值
 
server-id=2 #配置server-id,让从服务器有唯一ID号
 
relay_log = mysql-relay-bin #打开Mysql日志,日志格式为二进制
 
read_only = 1 #设置只读权限
 
log_bin = mysql-bin #开启从服务器二进制日志
 
log_slave_updates = 1 #使得更新的数据写进二进制日志中
 
5.启动从服务器复制线程
 
①stop  slave;
 
②reset slave;
 
③让slave连接master,并开始重做master二进制日志中的事件。
 
CHANGE MASTER TO
 
MASTER_HOST='192.168.41.145',
 
MASTER_USER='slave',
 
MASTER_PASSWORD='ke', 【主从密码要一致】
 
MASTER_LOG_FILE='mysql-bin.000001',
 
MASTER_LOG_POS=278;
 
※注意
 
IP为master的IP;
 
密码和master设置一致;
 
POS设置查看master得到:show master status
 
④start slave;# 启动复制线程。
 
6、查看从服务器状态
 
可使用SHOW SLAVE STATUSG查看从服务器状态,如下所示,也可用show processlist G查看当前复制状态:
 
Slave_IO_Running: Yes #IO线程正常运行
 
Slave_SQL_Running: Yes #SQL线程正常运行
 
【两者必须同时YES,才算启动成功】
 
附:主从同步出现一下错误:
 
Slave_IO_Running: Connecting
 
Slave_SQL_Running: Yes
 
解决方法:
 
导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:
 
  1、网络不通
 
2、密码不对
 
3、pos不对
 
四、验证
 
在master上插入数据,查看slave上是否可以同步
 
create database liuke;#建数据库
 
use liuke;
 
create table mini_tb(id int(3),name char(10));  #建表
 
insert into mini_tb values(001,'candy'); #插入数据
 
select*from mini_tb;     #查看表内容
  
在slave上查看,可以同步则成功。
 
五、添加新slave服务器
 
假如master已经运行很久了,想对新安装的slave进行数据同步,甚至它没有master的数据。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读