某个小项目需要支持一下 MySQL 全库备份,
本来想着要不做个从库之类的完事了,
但是本来数据库也就几万条数据,
搞这玩意实在是蛋疼。
又想着要不直接启定时任务,
用 MySQL dump 命令行折腾一下算了,
但是….
还是觉得懒。
要不看下有没有人封了库?
SO
找到了…
代码
1 |
|
注释也没写,反正没几行代码。
1 | using Microsoft.AspNetCore.Mvc; |
接口大概是上面,自己照着调整一下完事。
糊个页面
大概,就这样。
彩蛋时间
可能会遇到 MySQL 连接超时错误。
看情况设置一下”connect-timeout“ 参数。
connect-timeout=3600
导入数据的时候,可能会遇到”mysql Packets larger than max_allowed_packet are not allowed.“
需要调整 ”max_allowed_packet“ 参数。
max-allowed-packet=1073741824
如果你的 MySQL 也是 docker-compose 部署的,可以参考这个~
args:
- --lower-case-table-names=1
- --max-connections=4000
- --connect-timeout=3600
- --max-allowed-packet=1073741824
- --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
还有彩蛋
如果你想实现一个定时备份,
在 dotnet core 中可以用 IHostService 实现,
代码大概是
1 |
|
完事。
结尾
简单粗暴的方案总有风险,
苟住苟住~