定时备份mysql数据库

源码

https://gitee.com/pingfanrenbiji/docker-mysql-auto-backup

代码流程简介

​定时备份mysql数据库_数据库

将代码打包成docker镜像

docker build -t docker-mysql-auto-backup:v1.0.0 .
docker tag docker-mysql-auto-backup:v1.0.0 registry.cn-shanghai.aliyuncs.com/mengfanxiao/docker-mysql-auto-backup:v1.0.0
docker push registry.cn-shanghai.aliyuncs.com/mengfanxiao/docker-mysql-auto-backup:v1.0.0

启动docker

docker pull registry.cn-shanghai.aliyuncs.com/mengfanxiao/docker-mysql-auto-backup:v1.0.0

docker run -it -d -v /mysql_backups/:/mysql_backups/:rw -e MYSQL_DB_HOST=IP -e MYSQL_DB_USER=root -e MYSQL_DB_PWD=123456 -e MYSQL_DB_NAME=ry-vue -e MYSQL_DB_PORT=PORT registry.cn-shanghai.aliyuncs.com/mengfanxiao/docker-mysql-auto-backup:v1.0.0

原理简介

使用的mysql的导出工具 mysqldump

  • 导出本地mysql server 所有数据库
mysqldump -uroot -p --all-databases > sqlfile.sql;
  • 导出指定服务器数据库服务所有数据库
mysqldump -h IP -P3306 -uroot -p --all-databases > sqlfile.sql;
  • 导出指定数据库
mysqldump -h IP -P3306 -uroot -p jeecg-boot > jeecg-boot.sql;

遇到的问题

如果导出命令和数据库服务不在同一个网络中

比如 不同的服务器之间或者同一台服务器中不再同一个docker中

那么需要在mysql server中配置下允许所有的网络访问且允许所有的网络使用mysql_native_password加密方式才可以

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

否则的话 就会报

mysqldump: Got error: 2059: "Authentication plugin 'caching_sha2_password' cannot be loaded