3

我可以用 Sequel Pro 连接到我的数据库,但我不能通过命令行。我在这里按照他们的说明进行操作:http ://www.sequelpro.com/docs/Connecting_to_a_MySQL_Server_on_a_Remote_Host#Do_I_need_to_use_the_Terminal_for_SSH_connections.3F

在他们的命令中,我从 Sequel Pro 的连接窗口和 SSH 选项卡中替换以下内容:

ssh -L 1234:mysqlhost:3306 sshuser@sshhost

mysqlhost => MySQL Host
sshuser => SSH User
sshhost => SSH Host

当提示输入密码时,我使用“SSH密码”中的密码

我不确定 Sequel Pro 在幕后做了什么不同的事情。

4

1 回答 1

9

Sequel Pro 文档中的说明并不是全部。它只是告诉你如何设置隧道。您需要第二步才能真正使用它来连接 MySQL 服务器。

实际过程分为两步:

  1. 创建隧道。

    ssh -N -L 1234:mysqlhost:3306 sshuser@sshhost
    

    我添加的-N只是告诉ssh只是在设置一个隧道,你不想在sshhost. 运行这个命令看起来好像什么都不做:这就是它应该的样子。

    只要该ssh命令正在运行,到本地计算机上端口 1234 的连接将通过隧道连接sshhostmysqlhost.

  2. 使用隧道连接到 MySQL。

    您现在需要运行mysql命令行客户端。您刚刚运行的ssh命令仍在运行,因此最简单的方法是打开一个新的终端窗口或选项卡,然后运行:

    mysql -P 1234 -u mysqluser -p
    

    连接到您的数据库。该-P 1234部分是该命令唯一不寻常的部分,它只是使mysql客户端使用您在第一个命令中设置的端口进行连接以进行隧道。

完成隧道后,关闭原始终端窗口或使用Ctrl-C停止该ssh过程。

于 2012-02-04T04:13:32.197 回答