小编典典

如何从本地机器mysqldump远程数据库

all

我需要在远程服务器上做一个数据库的 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

阅读 121

收藏
2022-06-21

共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配置(或默认)选项。--socket请参阅寻找/使用哪些选项文件的手册。在 Windows 下,这可以是命名管道。

2022-06-21