定时备份mysql数据库
源码
https://gitee.com/pingfanrenbiji/docker-mysql-auto-backup
代码流程简介
将代码打包成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
尾声
论坛:http://www.pingfanrenbiji.club/ markdown地址:http://mdnice.pingfanrenbiji.club/