如何从本地计算机上使用mysqldump导出远程数据库

10 浏览
0 Comments

如何从本地计算机上使用mysqldump导出远程数据库

我需要在远程服务器上进行数据库的mysqldump,但该服务器上没有安装mysqldump。我想使用我自己机器上的mysqldump连接到远程数据库,并在我的机器上进行dump操作。\n我尝试创建一个ssh隧道,然后进行dump操作,但似乎不起作用。我尝试了以下命令:\n

ssh -f -L3310:remote.server:3306 user@remote.server -N

\n隧道成功创建。如果我执行\n

telnet localhost 3310

\n我会得到一些内容,显示正确的服务器mysql版本。然而,执行以下操作似乎尝试本地连接\n

mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name

0
0 Comments

如何从本地机器远程导出MySQL数据库?

当需要从本地机器远程导出MySQL数据库时,可能会遇到一些问题。下面的内容提供了两种解决方法。

方法一:使用SSL实现远程服务器的mysqldump

在远程服务器上执行以下命令以创建一个新用户并授予相应权限:

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

方法二:使用SSL(REQUIRE X509)实现远程服务器的mysqldump

在远程服务器上执行以下命令以创建一个新用户并授予相应权限:

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

注意事项:

1. 在本地服务器上,需要将远程服务器的SSL证书文件复制到本地服务器的/usr/local/mysql/data/ssl/目录下。如果不是使用(REQUIRE X509)的SSL连接方式,则无需复制证书文件。

2. 在远程服务器上,需要配置my.cnf文件以启用SSL连接,并提高密码安全性。具体的配置信息可以参考上述内容中的链接。

通过以上两种方法,您可以从本地机器远程导出MySQL数据库。

0
0 Comments

问题的原因是在本地机器上使用mysqldump远程备份数据库时遇到困难,原因可能是需要通过SSH隧道连接,或者需要将备份文件传回本地机器。解决方法是直接在本地机器上使用mysqldump命令备份远程数据库,无需通过SSH连接和传输文件。只需要提供MySQL的连接参数,如服务器主机名、用户名、密码和数据库名称,即可进行备份。需要注意的是,为了安全起见,密码参数应该使用-p选项,这样在登录时会提示输入密码。同时,也某些情况下这种方法可能存在安全风险,因为需要将MySQL的端口对外开放,容易受到暴力破解攻击。但也有人指出,在某些情况下这是安全的,比如在Docker容器网络中,只有其他容器可以访问MySQL端口。此外,还提到了其他一些解决方案,比如使用VPN或从已经通过SSH连接到数据库机器的机器上进行备份。还某些情况下了一些命令参数的注意事项,比如-p参数是用于密码而不是数据库名称,而且mysqldump命令的参数语法并不是很直观。最后,还某些情况下了一些特殊情况下的问题,比如在云环境或生产环境中,数据库服务器和应用服务器是分开的,需要考虑如何自动化备份数据库。如果无法远程访问MySQL,可以通过SSH连接到远程主机并在远程主机上执行mysqldump命令来备份数据库。对于遇到"Unknown table 'COLUMN_STATISTICS' in information_schema"错误的人,需要添加--column-statistics=0参数来解决问题。整体来看,解决方法是直接在本地机器上使用mysqldump命令备份远程数据库,提供正确的连接参数即可。

0
0 Comments

如何从本地机器远程备份MySQL数据库的问题是因为在远程备份数据库时遇到了一些问题。解决方法是更改SSH命令和mysqldump命令的参数。

首先,需要更改SSH命令,将远程服务器的端口映射到本地机器上的端口。原始命令中使用的是"remote.server"作为远程服务器的地址,但是需要更改为"localhost"。更改后的命令如下:

ssh -f -L3310:localhost:3306 user.server -N

接下来,需要更改mysqldump命令,以便将备份数据发送到本地机器上的端口。原始命令中使用的是"localhost"作为主机地址,但是这可能会导致使用套接字连接而不是端口连接。所以需要更改为"127.0.0.1"。更改后的命令如下:

mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name

请注意,如果使用"localhost"作为主机地址,它通常会默认为"::1" IPv6地址,而不是"127.0.0.1"。因此需要确保使用正确的主机地址。

最后,解释了一下"-P"参数的作用。"-P"参数用于指定端口号,而"-p"参数用于提示输入密码。在此问题中,使用了"-P"参数来指定SSH隧道的端口,而"-p"参数用于指定MySQL用户的密码。根据问题中的描述,可以将"-P"参数去掉,并将SSH隧道中的3310端口更改为3306端口。

以上就是解决如何从本地机器远程备份MySQL数据库的问题的方法。通过更改SSH命令和mysqldump命令的参数,可以成功地将远程数据库备份到本地机器上。

0