如何使用pem文件完成远程mysqldump?

时间:2015-11-19 12:08:15

标签: mysql mysqldump

我在远程服务器中设置了mysql服务器。我可以使用pem文件通过workbench使用连接方法作为ssh over IP访问它。我想从我的远程服务器备份其中一个DB。

我知道,我可以使用以下命令来执行远程mysqldump,

mysqldump -P3306  -h192.168.1.101 -uroot -ppassword database > /root/user/my.sql

但是,我没有mysql服务器的密码。我使用.pem文件进行身份验证。那么,我该如何运行mysqldump命令?

修改1 : 我尝试了以下命令

ssh -i ~/.ssh/my.pem -f -L3310:localhost:3306 ubuntu@<server-ip> -N

但无法成功。它抛出以下错误,

  

远程主机识别已更改!

所以,我尝试了this。但同样的错误。 :(

2 个答案:

答案 0 :(得分:2)

不确定你是否最终解决了这个问题,但我确实使用了以下内容:

mysqldump --ssl-key=/path/to/pem -u your_username -p -h your.host.com  your_db > your_dump.sql

希望这有帮助。

答案 1 :(得分:0)

远程服务器上的mysqldump使用SSL

1- SSL安全性

192.168.0.101-远程服务器

192.168.0.102-本地服务器

更多服务器

CREATE USER 'backup_remote_2'@'192.168.0.102' IDENTIFIED WITH caching_sha2_password BY '3333333' REQUIRE SSL;

GRANT ALL PRIVILEGES ON *.* TO 'backup_remote_2'@'192.168.0.102';

FLUSH PRIVILEGES;

-

本地服务器

sudo /usr/local/mysql/bin/mysqldump \
 --databases test_1 \
 --host=192.168.0.101 \
 --user=backup_remote_2 \
 --password=3333333 \
 --master-data \
 --set-gtid-purged \
 --events \
 --triggers \
 --routines \
 --verbose \
 --ssl-mode=REQUIRED \
 --result-file=/home/db_1.sql

===================================

2-SSL的安全性(REQUIRE X509)

192.168.0.101-远程服务器

192.168.0.102-本地服务器

更多服务器

CREATE USER 'backup_remote'@'192.168.0.102' IDENTIFIED WITH caching_sha2_password BY '1111111' REQUIRE X509;

GRANT ALL PRIVILEGES ON *.* TO 'backup_remote'@'192.168.0.102';

FLUSH PRIVILEGES;

-

本地服务器

sudo /usr/local/mysql/bin/mysqldump \
 --databases test_1 \
 --host=192.168.0.101 \
 --user=backup_remote \
 --password=1111111 \
 --events \
 --triggers \
 --routines \
 --verbose \
 --ssl-mode=VERIFY_CA \
 --ssl-ca=/usr/local/mysql/data/ssl/ca.pem \
 --ssl-cert=/usr/local/mysql/data/ssl/client-cert.pem \
 --ssl-key=/usr/local/mysql/data/ssl/client-key.pem \
 --result-file=/home/db_name.sql

[注意]

在本地服务器上

/ usr / local / mysql / data / ssl /

-rw------- 1 mysql mysql 1.7K Apr 16 22:28 ca-key.pem
-rw-r--r-- 1 mysql mysql 1.1K Apr 16 22:28 ca.pem
-rw-r--r-- 1 mysql mysql 1.1K Apr 16 22:28 client-cert.pem
-rw------- 1 mysql mysql 1.7K Apr 16 22:28 client-key.pem

从(REQUIRE X509)的远程服务器复制此文件,或者如果没有(REQUIRE X509)的SSL不复制,则


在远程服务器上

/ usr / local / mysql / data /

-rw------- 1 mysql mysql 1.7K Apr 16 22:28  ca-key.pem
-rw-r--r-- 1 mysql mysql 1.1K Apr 16 22:28  ca.pem
-rw-r--r-- 1 mysql mysql 1.1K Apr 16 22:28  client-cert.pem
-rw------- 1 mysql mysql 1.7K Apr 16 22:28  client-key.pem
-rw------- 1 mysql mysql 1.7K Apr 16 22:28  private_key.pem
-rw-r--r-- 1 mysql mysql  451 Apr 16 22:28  public_key.pem
-rw-r--r-- 1 mysql mysql 1.1K Apr 16 22:28  server-cert.pem
-rw------- 1 mysql mysql 1.7K Apr 16 22:28  server-key.pem

my.cnf

[mysqld]
# SSL
ssl_ca=/usr/local/mysql/data/ca.pem
ssl_cert=/usr/local/mysql/data/server-cert.pem
ssl_key=/usr/local/mysql/data/server-key.pem

提高密码安全性

https://dev.mysql.com/doc/refman/8.0/en/password-security-user.html