0

我有几个网站托管在 VPS 上,目前正在通过 cron 运行 shell 脚本来执行数据库备份,看起来像这样:

mysqldump -uusername1 -prootpassword dbname1 > /backup/dbname1.bak
mysqldump -uusername2 -prootpassword dbname2 > /backup/dbname2.bak
mysqldump -uusername3 -prootpassword dbname3 > /backup/dbname3.bak

我对这个过程有一些担忧。

首先,我使用 root 服务器密码来执行 mysqldump,并且文件以明文形式存储在服务器上(不可公开访问或其他任何内容,但如果我出于某种原因授予其他用户访问服务器的权限,显然存在担忧或其他)。我使用 root 是因为它比跟踪创建数据库的每个人并询问他们特定的数据库密码更简单。

其次,这个过程只有在人们告诉我他们已经添加了一个数据库时才有效(这在大多数情况下都很好,我们在这里没有做任何超级复杂的事情)。我宁愿备份所有内容,而不必担心我忽略了某些内容。

4

2 回答 2

1

您总是可以转储所有数据库:

mysqldump --all-databases | gzip -9 > /backup/dbs.bak.gz

这样您就不必跟踪有哪些 dbs。缺点是恢复变得有点复杂。

至于使用 root,您没有理由不能创建另一个有权进行备份的帐户 - 除了初始设置之外,您永远不应该使用 root 帐户。

于 2011-07-22T15:55:05.447 回答
1

我使用这个脚本: http: //sourceforge.net/projects/automysqlbackup/它工作得很好。此外,您应该添加一个具有全局 SELECT 和 LOCK TABLES 权限的备份 MySQL 用户。这样你就不需要每个人的用户名和密码/

于 2011-07-22T15:58:48.727 回答