主要讲述的是用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包下载地址
目的
主数据库删除数据,从数据库也会删除
从数据库删除,主数据库不会删除
将主服务器需要同步的数据库内容进行备份一份,上传到从服务器上,保证始初状态时两服务器中数据库内容一致;此步骤可以利用数据库连接工具实现,如果无法使用可以利用mysql导入数据库命令导入相同的数据到主从数据库中
进入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地址
在从服务器(Slave)上输入如下指令:
[root@YD146 ~]# mysql –h192.168.128.137 -ureplicate -p123456
在主数据库服务器上找到配置文件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
[root@localhost mysql]# systemctl restart mysql
mysql>flush tables with read lock;
mysql>show master status\G;
如下图:
注意看里面的参数,特别前面两个File和Position的参数,在后面从服务器(Slave)配置主从关系会有用到的。(记录下标黄的参数,后面会用到)
目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁,如下图。
mysql>unlock tables;
因为这里面是以主-从方式实现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
修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。
[root@localhost mysql]# systemctl restart mysql
在进入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以上版本已经不支持在配置文件中指定主服务器相关选项。
mysql> show slave status\G;
在上面的状态列表中判断下面两项是不是yes,yes表示设置从服务器成功
Slave_IO_Running=yes
Slave_SQL_Running=yes
1. 在主数据库已经设置为同步的库中插入一个数据;
2. 在从数据库中查看是否添加了该数据;
成功实现主从双数据库备份备份!!!
有任何问题欢迎小伙伴留言!