不能SSH隧道与PuTTY(Windows Vista)连接到MySQL的Linux机箱

目标:

我试图复制一个数据库到我的本地框运行窗口的Vista

build立:

  • 在Vista上使用MySql 5.1(mysql-essential-5.1win32)
  • 在linux上:mysql Ver 14.12 Distrib 5.0.51a,
  • 我用这种方法在腻子上设置了ssh隧道:
    • 源端口3306,目的地:localhost:3307
    • 我正在使用3307,因为我在3306上运行的vista上有自己的数据库

我可以在本地login到我的Linux机器上的数据库,但是,当我试图从MySQLpipe理员login使用

  • 服务器主机:127.0.0.1端口3307
  • 用户名:SomeUser的
  • 密码:somepassword

它失败了这个消息MySql错误号2003无法连接到127,0.0.1上的MySql服务器(10061)

请推荐修复。

谢谢

这听起来像你已经“倒退”了。 目的地不是你的回环,而是另一个networking上的远程机器。 这个,或者你使用的是远程而不是本地的隧道。

尝试翻转IP地址,例如:

putty.exe -L 3307:mysql.yourdomain.com:3306 

其中mysql.yourdomain.com是您尝试联系的具有MySQL服务的主机的名称。 当puttypopup连接对话框时,input地址,连接并login,然后使用Administrator工具连接到localhost:3307。

我刚刚尝试过Windows 7,它也不适用于我。 端口将被转发,但不会被重新映射,它仍然是localhost:3306 ,与您的情况下本地服务器发生冲突。 腻子文件也说,这将是正确的方式,但也许Windows Vista的新安全模型阻止重新映射的端口。

我build议,如果您在本地使用端口3306,不隧道到本地主机 (通常映射到127.0.0.1 ),但隧道到另一个IP在您的环回范围(也许127.0.0.2 )。 如果您的本地SQL服务器configuration良好,它只侦听127.0.0.1:3306 ,您的远程隧道SQL服务器可以侦听127.0.0.2:3306 ,因此不需要重新映射端口。

你不需要或需要腻子远程访问数据库。

你有权限从本地机器连接到远程数据库吗?

如果是这样的话,你可以在Vista上使用mysqldump --host=remotemachine --user=remotesqluser --password=remotepassword --databases databasename>database.dump ,然后用mysql --port=3307 --host=127.0.0.1 --user=localsqluser --password=localpassword <database.dump它加载到你的本地盒子mysql --port=3307 --host=127.0.0.1 --user=localsqluser --password=localpassword <database.dump – 如果你在本地运行linux,我只是将一个程序插入另一个程序,但我不知道Vista的cmd.exe是否支持。

如果你不能远程连接,但有pipe理员访问linux数据库,你可以给自己的权限(在远程mysql命令行) grant select on databasename.* to 'remotesqluser'@'yourexternalIPaddress' identified by 'remotepassword'; (我认为select是你所需要的)。 一旦你有访问权限,你可以像上面那样复制数据库。 完成后,使用revoke可以失去权限。

如果你不能做到这一点,你需要腻子:连接到Linux机器,然后在那里运行mysqldump命令(使用--host=127.0.0.1 )。 通过任何你喜欢的方式将转储文件复制到你的Vista机器 – scp,ftp,http如果你有一个方便的web服务器 – 然后你可以像上面那样在本地加载数据库。 完成后,不要忘记在Linux上删除转储文件。

注意,如果你的mysqldump选项设置不合理,你可能需要在命令中join--extended-insert来加快速度(允许使用多行插入),如果有任何存储过程数据库传输, – --routines