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

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

我试图创build一个SSH隧道,然后做转储,但这似乎并没有工作。 我试过了:

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

隧道创build成功。 如果我做

 telnet localhost 3310 

我得到一些显示正确的服务器的MySQL版本。 但是,做以下似乎尝试本地连接

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

因为我还没有在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 

(不要使用本地主机,它可能是通过socket而不是通过端口连接的这些“特殊含义”废话之一)

编辑 :好,详细说明:如果主机设置为localhost ,则假定已configuration(或默认)– --socket选项。 请参阅手册中哪些选项文件被寻求/使用。 在Windows下,这可以是一个命名pipe道。