如何构建MySQL数据库的同步双机主从备份

主要讲述的是用mysql自带的REPLICATION(主从复制)来实现mysql双机热备的功能。

模拟部署载体VMware Workstation 15.5 Pro
主MySQL服务器CentOS 7.6(IP:192.168.128.137)
从MySQL服务器CentOS 7.6(IP:192.168.128.138)
MySQL版本mysql 5.6.27

mysq 5.6.27 tar包下载地址

目的
主数据库删除数据,从数据库也会删除
从数据库删除,主数据库不会删

操作步骤如下

1 主从数据初始化

将主服务器需要同步的数据库内容进行备份一份,上传到从服务器上,保证始初状态时两服务器中数据库内容一致;此步骤可以利用数据库连接工具实现,如果无法使用可以利用mysql导入数据库命令导入相同的数据到主从数据库中

2 主服务器Master配置

2.1 创建同步用户

进入mysql操作界面,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作;
操作指令如下:

mysql> grant replication slave on *.* to 'replicate'@'192.168.128.138' identified by '123456';
mysql> flush privileges;
//上面的IP地址为从数据库服务器的IP地址

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

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

[root@YD146 ~]# mysql –h192.168.128.137 -ureplicate -p123456

显示数据库登陆成功

2.3 修改mysql配置文件

在主数据库服务器上找到配置文件my.cnf打开后,在[mysqld]下修改即可,如果没有则添加,如图:

[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-do-db = serverdb_inhistory  //需要同步的数据库名
binlog-do-db = serverdb_node_jianyu //需要同步的数据库名,如有多行则按照此行的模式在下面继续添加一行,切记不可在库名后追加
binlog-ignore-db=mysql

添加的内容

2.4 重启主服务器mysql服务

[root@localhost mysql]# systemctl restart mysql

2.5 查看主服务器状态

mysql>flush tables with read lock;
mysql>show master status\G;

如下图:
查看主机服务器状态
注意看里面的参数,特别前面两个FilePosition的参数,在后面从服务器(Slave)配置主从关系会有用到的。(记录下标黄的参数,后面会用到)

2.6 锁表

目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁,如下图。

mysql>unlock tables;

3 从服务器Slave配置

3.1 修改配置文件

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

[mysqld]
server-id = 2
log-bin=mysql-bin
binlog-do-db = serverdb_inhistory
binlog-do-db=serverdb_node_jianyu
replicate-ignore-db = mysql,information_schema,performance_schema

在这里插入图片描述

3.2 重启mysql服务

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

[root@localhost mysql]# systemctl restart mysql

3.3 用change mster 语句指定同步位置(很关键的一步)

在进入mysql操作界面后,输入如下指令

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

然后:

mysql> change master to 
    -> master_host='192.168.128.137',
    -> master_user='replicate',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000001',
-> master_log_pos=120;
//注意里面的IP地址和相关的参数配置

注意上面红色的参数配置:IP地址为主数据的IP地址,master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

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

mysql> show slave status\G;

slave状态
在上面的状态列表中判断下面两项是不是yes,yes表示设置从服务器成功

Slave_IO_Running=yes
Slave_SQL_Running=yes

4 验证是否能够成功备份

1. 在主数据库已经设置为同步的库中插入一个数据;
插入数据
2. 在从数据库中查看是否添加了该数据;
从数据库查看数据是否同步
成功实现主从双数据库备份备份!!!

有任何问题欢迎小伙伴留言!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值