Centos7下基于docker的mysql数据库主从备份操作

前言

本文章主要介绍如何实现mysql数据库主从备份操作。首先要了解的mysql主从备份的原理。

简单原理

mysql中每一次针对数据库的操作都在被记录在二进制日志文件中,只要从库去读取主库的日志文件就能将主库的操作还原到从库中。

本文环境
  1. 两台centos7虚拟机
  2. 虚拟机上均安装了docker
  3. docker里面均运行最新mysql容器
  4. 容器文件映射关系如下图
    Centos7下基于docker的mysql数据库主从备份操作_第1张图片

正文

1、配置主库

由于mysql运行在容器中,而容器中修改文件比较麻烦,所以将需要用到的配置文件映射出来了:/etc/my.cnf文件。下面就是主库的配置文件信息

[mysqld]
server_id = 1
log-bin = mysql-bin
read-only = 0
binlog_format = ROW
binlog_row_image = minimal
binlog-do-db = eams
2、重启docker
docker restart mysql
3、进入mysql配置从库同步账号
mysql>create user username identified with mysql_native_password by 'password';
mysql>grant replication slave on *.* to username;
mysql>flush privileges;
4、配置从库
[mysqld]
server_id = 2
binlog_format = ROW

其实此处的从库可以不用配置,主要就是为了将server_id设置成和主库不一样,不然的话后面会报错。

5、重启从库docker
docker restart mysql
6、查看主库的日志状态
mysql>show master status \G;

在主mysql中执行上述代码,得到下图
Centos7下基于docker的mysql数据库主从备份操作_第2张图片
保存得到的结果,配置从库的时候需要用到。

7、配置从库需要同步的主库信息
mysql>change master to master_host='主库数据库IP',master_user='第三步配置的账号',master_password='第三步配置的账号',master_log_file='第六步结果的文件名称',master_log_pos=第六步结果的position,master_port=主库数据库端口号;
8、启动同步操作
mysql>start slave;

在从库执行上述命令

9、查看同步状态
mysql>show slave status \G;

在从库执行上述命令
Centos7下基于docker的mysql数据库主从备份操作_第3张图片
如果上诉两个都是yes,则表明主从设置成功。主库里面进行的任意操作都会同步到从库中。

你可能感兴趣的:(java,mysql,数据库,docker,centos)