【问题标题】:I can connect to DB through Sequel Pro, but not through command line我可以通过 Sequel Pro 连接到 DB,但不能通过命令行
【发布时间】:2012-02-25 12:44:03
【问题描述】:

我可以使用 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 在幕后有什么不同。

【问题讨论】:

  • 那么,你运行那个命令,然后然后会发生什么,或者你还做什么?您只是使用该 SSH 命令设置隧道。

标签: mysql database ssh sequelpro


【解决方案1】:

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

实际过程是两步:

  1. 创建隧道。

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

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

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

  2. 使用隧道连接到 MySQL。

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

    mysql -P 1234 -u mysqluser -p
    

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

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

【讨论】:

  • 这如何用于在 bash 脚本中在服务器上创建数据库?如果你能在这里查看我的问题会很棒:stackoverflow.com/questions/12905077/…
  • 这几乎完全适用于我,但在第 2 步中,我必须指定主机为 127.0.0.1,如 mysql -u user -h 127.0.0.1 -p,否则它将无法正常工作。
猜你喜欢
  • 2021-01-08
  • 2021-09-20
  • 2020-12-25
  • 2019-04-12
  • 1970-01-01
  • 2023-03-10
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多