0

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

因为我使用mysqldump如下

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

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

4

5 回答 5

3

这个怎么样:

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

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

例如

gpg --import keyfile
于 2013-03-15T19:49:21.033 回答
2

除非您真的喜欢 GPG,否则不要使用 GPG,坦率地说,有点矫枉过正,您可以使用 OpenSSL,它可能是内置的,没有真正的依赖结构,可以轻松进行可移植和可解密的备份。通过这种方式,您可以轻松地在几乎任何 Linux 系统(和许多其他平台)上解密备份,而无需任何密钥环,只需知道密码。

此链接上阅读有关如何操作的更多信息。

于 2013-03-21T16:23:51.267 回答
0

另请注意,-p通过命令行使用是非常糟糕的做法,因为密码可以通过ps aux.

我建议使用opensslaspgp来减慢大文件的速度。

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

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

于 2015-12-28T19:21:10.887 回答
0

备份一个数据库,更改里面的内容 [..]

mysqldump -u root --single-transaction [DataBaseName] | gzip | openssl enc -pbkdf2 -k [MyPassword] > database.sql.zip.enc

分别备份所有数据库:

date=`date "+%Y%m%d"`
for DB in $(mysql -u root -e 'show databases' -s --skip-column-names); do
        mysqldump -u root --single-transaction $DB | gzip | openssl enc -pbkdf2 -k [MyPassword] > db-$DB-$date.sql.gz.enc;
done
于 2022-02-08T07:13:17.147 回答
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 软件来创建您的密钥并将公钥发布到密钥服务器。

于 2016-10-18T01:54:57.053 回答