1. 生成key
echo -n "123456" | shasum -a 256
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 - #注意后面的中划线不算,共64个字符
2. 方式1:使用key
#备份
mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/fullbak --backup-image=/data/backup/full.mbi.enc --user=mysqlbackup -p'Abc@12345678' --read-threads=4 --process-threads=8 --write-threads=4 --compress --encrypt -- key=8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 backup-to-image >>/data/backup/bak.log 2>&1
#恢复
mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/data/backup/full.mbi.enc --backup-dir=/tmp/mysqlrestore --datadir=/data/mysql/data --decrypt --key=8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 copy-back-and-apply-log
3.方式2:使用key-file
#生成keyfile
echo -n "123456" | shasum -a 256 >/tmp/bakey
#备份
mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/fullbak --backup-image=/data/backup/full.mbi.enc --user=mysqlbackup -p'Abc@12345678' --read-threads=4 --process-threads=8 --write-threads=4 --compress --encrypt --key-file=/tmp/bakey backup-to-image >>/data/backup/bak.log 2>&1
#恢复
mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/data/backup/full.mbi.enc --backup-dir=/tmp/mysqlrestore --datadir=/data/mysql/data --decrypt --key-file=/tmp/bakey copy-back-and-apply-log
4.方式3:使用--encrypt-password参数
#备份(密码明文)
mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/fullbak --backup-image=/data/backup/full.mbi --user=mysqlbackup -p'Abc@12345678' --read-threads=4 --process-threads=8 --write-threads=4 --compress --encrypt-password="123456" backup-to-image >>/data/backup/bak.log 2>&1
#恢复--不指定密码--成功
mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/data/backup/full.mbi --backup-dir=/tmp/mysqlrestore --datadir=/data/mysql/data copy-back-and-apply-log
#恢复--指定密码--成功
mysqlbackup --defaults-file=/etc/my.cnf --backup-image=/data/backup/full.mbi --backup-dir=/tmp/mysqlrestore --datadir=/data/mysql/data --encrypt-password="123456" copy-back-and-apply-log
注意:我们会发现,在备份的时候我们指定了--encrypt-password,但是在恢复数据库的时候,即使我们不指定这个参数也能恢复成功,为什么呢???
--encrypt-password参数只有在备份使用TED加密的表空间的时候才有用,如果使用mysqlbackup备份数据库的时候,表空间没有加密,那么添加这个参数将会被忽略
标签:加密,--,data,备份,mysqlbackup,file,backup,image
From: https://www.cnblogs.com/dber-ablewang/p/18258870