本文章主要介绍如何实现mysql数据库主从备份操作。首先要了解的mysql主从备份的原理。
mysql中每一次针对数据库的操作都在被记录在二进制日志文件中,只要从库去读取主库的日志文件就能将主库的操作还原到从库中。
由于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
docker restart mysql
mysql>create user username identified with mysql_native_password by 'password';
mysql>grant replication slave on *.* to username;
mysql>flush privileges;
[mysqld]
server_id = 2
binlog_format = ROW
其实此处的从库可以不用配置,主要就是为了将server_id设置成和主库不一样,不然的话后面会报错。
docker restart mysql
mysql>show master status \G;
在主mysql中执行上述代码,得到下图
保存得到的结果,配置从库的时候需要用到。
mysql>change master to master_host='主库数据库IP',master_user='第三步配置的账号',master_password='第三步配置的账号',master_log_file='第六步结果的文件名称',master_log_pos=第六步结果的position,master_port=主库数据库端口号;
mysql>start slave;
在从库执行上述命令
mysql>show slave status \G;