我可以通过Sequel Pro连接到DB,但不能通过命令行连接

时间:2012-02-02 20:28:25

标签: mysql database ssh sequelpro

我可以用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在幕后的做法是什么。

1 个答案:

答案 0 :(得分:7)

来自Sequel Pro文档的那个指令并不是完整的故事;它只是告诉你如何建立一个隧道。您需要第二步实际使用来连接MySQL服务器。

实际过程分为两步:

  1. 创建隧道。

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

    我添加的-N只是告诉ssh你只是 设置隧道而你不想在{{1}上启动shell }。运行此命令看起来似乎什么都不做:它应该是什么样的。

    只要sshhost命令正在运行,本地计算机上与端口1234的连接将通过ssh通过sshhost隧道传输到端口3306(MySQL端口)。

  2. 使用隧道连接MySQL。

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

    ssh

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

  3. 完成隧道后,关闭原始终端窗口或使用 Ctrl-C 停止mysql进程。

相关问题