MySQL: 我可以 cron 备份文件夹而不是使用 mysqldump 以免暴露凭据吗?

MySQL: can i cron backup folder instead of using mysqldump so as not to expose credentials?

我想 运行 一个 cronjob 来备份数据库,但我不想公开凭据。我可以像这样备份相关文件夹吗

scp /var/lib/mysql/myDatabase remote@backupserver.io:/path/to/backup/myDatabase

而不是使用

mysqldump myDatabase > myDatabase.sql -uUser -pPassword;  <--- makes me twitch

有没有更好的方法可以在不在脚本中公开凭据的情况下执行此操作?还是我白担心了?

简答:否

长答案:mysqldump 如果应用正确 (--single-transaction),将创建一致的快照。复制文件会抓取一个不一致的、可能已损坏的快照,其中可能充满问题。

对于其他选项,请考虑 innobackupex

请记住,您可以将用户设为 只读 访问权限以进行备份。您还可以 运行 在本地备份过程并将加密的备份流保存在其他地方。然后,如果有人以某种方式拦截此流并保存它,他们仍然一无所有。