zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Centos7 Mysql主从双机热备的实战记录

mysqlcentos7 实战 记录 主从 双机 热备
2023-09-14 08:57:34 时间

  

操作系统:centos7

服务器:主:172.19.242.69   从:172.19.242.70

1. 服务器

由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本。

本次我用于测试的两台服务器版本都是Mysql-5.6.40

2. 建立主-从服务器双机热备配置步骤 

2.1环境描述

A服务器(主服务器Master):172.19.242.69

B服务器(从服务器Slave):172.19.242.70

主从服务器的Mysql版本皆为5.6.140

Linux环境下

将主服务器需要同步的数据库内容进行备份一份,上传到从服务器上,保证始初时两服务器中数据库内容一致。

 

2.2 主服务器Master配置

2.2.1 创建同步用户

进入mysql操作界面,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。

操作指令如下:

mysql> grant replication slave on *.* to 'replicate'@'172.19.242.69' identified by '123456';

mysql> flush privileges;

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

在从服务器(Slave)上输入如下指令:

[root@YD146 ~]# mysql -h 172.19.242.69 -u replicate -p 123456

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

 

2.2.2 修改mysql配置文件

my.cnf配置文件目录为/etc/my.cnf

找到配置文件my.cnf打开后,在[mysqld]下修改即可:

[mysqld]

server-id = 1

log-bin=mysql-bin                //其中这两行是本来就有的,可以不用动,添加下面两行即可

binlog-do-db = test

binlog-ignore-db = mysql

2.2.3 重启mysql服务

修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。

2.2.4 查看主服务器状态

进入mysql服务后,可通过指令查看Master状态,输入如下指令:

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

注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。


 

2.3 从服务器Slave配置

2.3.1修改配置文件

因为这里面是以主-从方式实现mysql双机热备的,所以在从服务器就不用在建立同步帐户了,直接打开配置文件my.cnf进行修改即可,道理还是同修改主服务器上的一样,只不过需要修改的参数不一样而已。如下:

[mysqld]

server-id = 2

log-bin=mysql-bin

replicate-do-db = test

replicate-ignore-db = mysql,information_schema,performance_schema

2.3.2重启mysql服务

修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。


 2.3.3用change mster 语句指定同步位置

这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:

mysql>stop slave;          //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。

mysql>change master to master_host='172.19.242.69',master_user='replicate',master_password='123456',master_log_file=' mysql-bin.000016 ',master_log_pos=107;

注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚才show master status出来的file和position的值。master_log_file对应File, master_log_pos对应Position。

如果按上面步骤之后还出现如下情况:


 则要重新设置slave。指令如下

mysql>stop slave;

mysql>reset slave;

之后停止slave线程重新开始。成功后,则可以开启slave线程了。

mysql>start slave;

2.3.4查看从服务器(Slave)状态

用如下指令进行查看

mysql> show slave status\G;

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

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

2.4 测试同步

在Master服务器上进行插入的数据在Slave服务器可以查到,就表示双机热备配置成功了

##########################################