代码之家  ›  专栏  ›  技术社区  ›  Mauritz Hansen

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

  •  143
  • Mauritz Hansen  · 技术社区  · 16 年前

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

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

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

    成功地创建了隧道。如果我这样做

    telnet localhost 3310
    

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

    mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name
    
    2 回复  |  直到 8 年前
        1
  •  210
  •   Wrikken    13 年前

    因为我还没有在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 假设为选项。见 the manual 寻找/使用哪些选项文件。在Windows下,这可以是命名管道。

        2
  •  48
  •   Ondrej Burkert    8 年前

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

    对我有用的例子是:

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

    我只是跟着mysqldump documentation 在连接选项上。