前言
本文章主要介绍如何实现mysql数据库主从备份操作。首先要了解的mysql主从备份的原理。
简单原理
mysql中每一次针对数据库的操作都在被记录在二进制日志文件中,只要从库去读取主库的日志文件就能将主库的操作还原到从库中。
本文环境
- 两台centos7虚拟机
- 虚拟机上均安装了docker
- docker里面均运行最新mysql容器
- 容器文件映射关系如下图
正文
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中执行上述代码,得到下图
保存得到的结果,配置从库的时候需要用到。
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;
在从库执行上述命令
如果上诉两个都是yes,则表明主从设置成功。主库里面进行的任意操作都会同步到从库中。