使用mysql自带的replication功能实现双机热备(主从复制)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x4609883/article/details/85257076

一,原理
简答来说,就是将主数据库的所有操作都记录到一个bin_log文件中,然后将bin_log文件复制到从数据库,进行回放,
从而实现将数据同步到从节点的目的。


二,注意事项
主数据库版本高于3.2,从数据库版本>=主数据库版本,因为不同版本的bin_log文件格式可能不一样,通常来讲,
软件都是向下兼容,高版本兼容低版本,所以要保证从数据库的版本不低于主数据库版本,这样才能保证bin_log文件正
常回放。


三,Mysql主从复制配置步骤
Linux环境安装Mysql数据库,主数据库IP:192.168.204.128,从数据库IP:192.168.204.129
主数据库配置:
(1),修改配置文件

(2),建立同步账号
进入主数据库mysql操作界面,在主数据库上为从数据库建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。
这样从数据库就可以通过REPLICATION对主数据库进行双机热备的功能操作。
操作指令如下:
mysql> grant replication slave on *.* to 'replication'@'192.168.204.129' identified by '123456';
mysql> flush privileges;

创建好同步连接帐户后,我们可以在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。
在从服务器(Slave)上输入如下指令:

如果能登录成功,说明可以对这两台服务器进行双机热备进行操作

(3),重启Mysql,查看主数据库状态

注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。

从数据库配置:
(1),修改配置文件

(2),重启Mysql服务,进入数据库用change mster 语句指定同步位置
mysql>stop slave;          //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>change master to
>master_host='192.168.204.128',master_user='replication',master_password='123456',
> master_log_file='mysql-bin.000003',master_log_pos=107;
注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position
如果操作失败,则要重新设置slave。指令如下
mysql>stop slave;
mysql>reset slave;
之后停止slave线程重新开始指定同步位置。成功后,则可以开启slave线程了。
mysql>start slave;

(3),查看从数据库状态

查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

四,测试同步

在主服务器(192.168.204.128)Mysql的test数据库中新建一张表并插入数据

然后查看从服务器(192.168.204.129)Mysql中的test数据库中的数据,发现是一致的,说明双机热备配置成功

猜你喜欢

转载自blog.csdn.net/x4609883/article/details/85257076