一尘不染

如何从本地计算机上mysqldump远程数据库

mysql

我需要在远程服务器上执行数据库的mysqldump,但该服务器未安装mysqldump。我想在我的机器上使用mysqldump连接到远程数据库并在我的机器上进行转储。

我试图创建一个ssh隧道,然后进行转储,但这似乎不起作用。我试过了:

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

隧道创建成功。如果我做

telnet localhost 3310

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

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

阅读 370

收藏
2020-05-17

共1个答案

一尘不染

正如我在serverfault上尚未看到的那样,答案很简单:

更改:

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

至:

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

并更改:

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

至:

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

(不要使用localhost,这是可能通过套接字而不是通过端口连接的这些“特殊含义”废话之一)

编辑
:好,详细说明:如果将host设置为localhost--socket则假定已配置(或默认)选项。请参见手册中有关寻求/使用选项文件的信息。在Windows下,这可以是命名管道。

2020-05-17