我可以用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在幕后的做法是什么。
答案 0 :(得分:7)
来自Sequel Pro文档的那个指令并不是完整的故事;它只是告诉你如何建立一个隧道。您需要第二步实际使用来连接MySQL服务器。
实际过程分为两步:
创建隧道。
ssh -N -L 1234:mysqlhost:3306 sshuser@sshhost
我添加的-N
只是告诉ssh
你只是 设置隧道而你不想在{{1}上启动shell }。运行此命令看起来似乎什么都不做:它应该是什么样的。
只要sshhost
命令正在运行,本地计算机上与端口1234的连接将通过ssh
通过sshhost
隧道传输到端口3306(MySQL端口)。
使用隧道连接MySQL。
您现在需要运行mysqlhost
命令行客户端。您刚刚运行的mysql
命令仍在运行,因此最简单的方法是打开一个新的终端窗口或选项卡,然后运行:
ssh
连接到您的数据库。 mysql -P 1234 -u mysqluser -p
部分是此命令中唯一不同寻常的部分,它只是使-P 1234
客户端使用您在第一个命令中设置的端口进行连接来进行隧道连接。 / p>
完成隧道后,关闭原始终端窗口或使用 Ctrl-C 停止mysql
进程。