如何从本地机器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道。