我在远程服务器中设置了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。但同样的错误。 :(
答案 0 :(得分:2)
不确定你是否最终解决了这个问题,但我确实使用了以下内容:
mysqldump --ssl-key=/path/to/pem -u your_username -p -h your.host.com your_db > your_dump.sql
希望这有帮助。
答案 1 :(得分:0)
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
===================================
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