如何在mysql中进行加密数据库备份

时间:2013-03-15 18:21:18

标签: mysql encryption mysqldump redhat

我正在使用mysql-5.5和rhel5,我的意图是使用mysqldump来进行加密备份和压缩备份

因为我正在使用mysqldump,如下所示

mysqldump -u root -p db_name | gzip >file_name.sql.gz

它将提供压缩备份但不加密

4 个答案:

答案 0 :(得分:2)

除非你真的喜欢GPG,否则你可以使用可能内置的OpenSSL,并且没有真正的依赖结构来制作易于移植和可解密的备份,而不是坦率地使用GPG。通过这种方式,您可以轻松解密任何Linux系统(以及许多其他平台)上的备份,而无需任何密钥环,只需知道密码即可。

this link about how do so了解详情。

答案 1 :(得分:1)

这个怎么样:

mysqldump -u root -p db_name | gpg --encrypt -r 'user_id' | gzip >file_name.sql.gz

当然,您需要要加密的用户的公钥。

e.g。

gpg --import keyfile

答案 2 :(得分:0)

另请注意,通过命令行使用-p非常糟糕,因为密码可以通过ps aux读取。

我建议使用openssl因为pgp对大文件的速度变慢。

我目前在工作中经常使用的最佳解决方案是mysqldump-secure

它提供openssl加密和压缩以及其他更多功能,甚至还附带一个nagios监控插件。

答案 3 :(得分:0)

我使用以下Bash脚本使用Dropbox将备份直接同步到我们自己的公司服务器(然后自动备份该数据)。用您自己的脚本变量替换脚本变量。然后我将它添加到我的crontab中,每12小时运行一次。

FILENAME=dbname.$(date +%Y-%m-%d-%H-%M)

SQLFILE=/root/Desktop/$FILENAME.sql
ZIPFILE=/root/Desktop/$FILENAME.zip
GPGFILE=/root/Dropbox/SQL-Backups/$FILENAME.gpg

mysqldump --user=dbuser --password=password --port=3306 --default-character-set=utf8 --single-transaction=TRUE --databases "dbname" --result-file="$SQLFILE"
zip -9 $ZIPFILE $SQLFILE
gpg --output "$GPGFILE" --encrypt --recipient "recipient@company.com" "$ZIPFILE"
unlink $ZIPFILE
unlink $SQLFILE

这使用GnuPG加密生成的压缩SQL转储。切记永远不要将私有密钥导入Web服务器。 Web服务器的GPG设置只需要公钥。

您可以使用大多数平台可用的GPG software来创建密钥并将公钥发布到密钥服务器。