当前位置:  开发笔记 > 后端 > 正文

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

如何解决《如何从本地机器mysqldump远程数据库》经验,为你挑选了2个好方法。

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

Wrikken.. 224

因为我还没有在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,它是这些'特殊含义'的废话之一,可能通过套接字而不是端口连接)

编辑:嗯,详细说明:如果主机设置为localhost,--socket则假定配置(或默认)选项.请参阅手册,了解寻找/使用的选项文件.在Windows下,这可以是命名管道.



1> Wrikken..:

因为我还没有在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,它是这些'特殊含义'的废话之一,可能通过套接字而不是端口连接)

编辑:嗯,详细说明:如果主机设置为localhost,--socket则假定配置(或默认)选项.请参阅手册,了解寻找/使用的选项文件.在Windows下,这可以是命名管道.


注意:`localhost`通常默认为`:: 1` IPv6,而不是`127.0.0.1`.

2> Ondrej Burke..:

您可以在本地针对远程服务器调用mysqldump.

对我有用的例子是:

mysqldump -h hostname-of-the-server -u mysql_user -p database_name > file.sql

我只是关注连接选项的mysqldump 文档.


之前无需再打开ssh隧道。+1
进入VPN怎么样?还是从您通过SSH访问的计算机上进行转储,该计算机可以访问数据库计算机?该端口不需要是公共的。
这很危险,非常危险。它要求mysql的端口向公众开放。这很容易被机器人强行强迫。
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有