【问题标题】:Connecting to MySQL on Serverpilot via SSH & Navicat通过 SSH 和 Navicat 连接到 Serverpilot 上的 MySQL
【发布时间】:2018-11-03 01:49:52
【问题描述】:

任何人在 vps 上使用 ServerPilot 并且能够使用 Navicat 通过 SSH 连接到 MySQL 服务器?在其他服务器/面板上,我一直这样做,没有问题;但它不会连接到 ServerPilot 上的 MySQL 数据库(Navicat 给出“SSH 连接错误;超时”)。我在我的 Windows 桌面计算机上使用 Navicat,试图连接到我的远程 ubuntu VPS 数据库。

在我多年来尝试过的所有其他服务器/面板上,此配置始终有效:

一般标签:

  • 主机名/IP 地址:127.0.0.1(或“localhost”)
  • 端口:3306。
  • 用户名:[数据库用户名,例如ServerPilot分配的用户名]
  • 密码 [数据库密码,如ServerPilot分配的密码]

SSH 标签:

  • 主机名/IP 地址:[我的 VPS 的主 IP]
  • 端口:22(在远程 VPS)[22 似乎是 ServerPilot 中的正确端口,因为 Putty 可以在该端口上登录]
  • 用户名:root [或者,ServerPilot 服务器上的“serverpilot”]
  • 密码:[我的VPS的root SSH密码;或者,ServerPilot 服务器上的“serverpilot”SSH 密码]

根据https://serverpilot.io/community/articles/connect-to-mysql-remotely.html,这也应该与 ServerPilot 一起使用。但事实并非如此。

我还尝试根据 https://support.cs.wwu.edu/index.php/Tunneling_MySQL_ports_through_SSH#Tunneling_with_PuTTY_in_Windows_.28Older.29 分别使用 Putty 打开 SSH 隧道。对于其他服务器/面板上的数据库,Navicat 以这种方式完美地连接到 MySQL。但不是当数据库在 ServerPilot 上时(它在 Navicat 中“测试”连接时给出错误:“2013 - 在查询期间丢失与 MySQL 服务器的连接”)。

当然,我不是唯一一个尝试在 ServerPilot 服务器上连接 MySQL 的人。如果你让它工作,或者如果你知道如何,请解释。 (顺便说一句,phpMyAdmin 在 ServerPilot 上运行良好,但我发现 Navicat 在使用 php 编程时对某些任务更方便。)谢谢。

【问题讨论】:

    标签: php mysql ssh server navicat


    【解决方案1】:

    首先,如https://www2.navicat.com/manual/online_manual/en/navicat/mac_manual/SSHSettings.html 所述,检查 /etc/ssh/sshd_config 中的“AllowTcpForwarding”设置(应为“yes”——否则,SSH 端口转发将被禁用)。如果您编辑了该文件,则重新启动 SSH 服务。因为它是 Ubuntu,所以它将是:“service ssh restart”(而不是像其他一些 linux 风格的“service sshd restart”)。

    如果 Navicat 仍然没有连接到连接到 ServerPilot 的 VPS 上的删除 MySQL 服务器,那么撤消您对 /etc/ssh/sshd_config 所做的任何更改(并重新启动 ssh)。您需要先在 PuTTY 中建立 SSH 隧道,而不是使用 Navicat 中的 SSH 设置。

    在 PuTTY 中建立一个特殊的 SSH 隧道:如果上面的第一步不起作用,请尝试此步骤。您引用的 cs-wwu 站点中的说明不适用于带有 ServerPilot 的 Ubuntu 上的 MySQL(即使它打开了可用于命令行操作的 SSH 终端连接)。相反,您需要遵循 https://dev.mysql.com/doc/refman/5.7/en/windows-and-ssh.html 下 2004 年 8 月 6 日评论中的方法。这给出了基本的想法。这里我会一步一步的详细给出整个过程:

    要将 Navicat 连接到 ServerPilot Ubuntu VSP 上的 MySQL,请在 PuTTY 中尝试以下设置:

    1. 在主会话屏幕中,输入:

    主机名(或 IP 地址):serverpilot@123.45.678.90(输入您的 VPS 的 IP 地址)

    端口:22

    已保存的会话:输入名称,例如 ServerPilot-MySQL

    2.在左侧的Category面板中,点击Connection、SSH、Tunnels

    在隧道屏幕中,输入:

    源端口:4000(这可以是任何高于 1024 且尚未在您的 Windows 计算机上使用的数字。我使用 4000 是因为我的端口 3306 目前被本地 WAMP 上的 mysql 使用Windows 上的服务器)。

    目的地:本地主机:3306

    3.点击“添加”按钮。现在在 Forwarded Ports 框中,您应该会看到:L4000 localhost:3306

    4. 返回“类别”窗格的顶部并单击“会话”。在“会话”屏幕中,单击“保存”按钮。

    5. 突出显示您刚刚保存在“已保存会话”框中的设置,然后单击“加载”按钮。然后点击打开。

    现在 PuTTY 终端会说: 使用用户名“serverpilot”。 serverpilot@123.45.678.90的密码:

    6. 复制您的“serverpilot”用户密码,并在“密码”旁边的提示符处右键单击鼠标将其粘贴到 PuTTY 中。

    现在您可以从 PuTTY 打开正确类型的 SSH 隧道。现在使用该隧道连接 Navicat。

    连接 Navicat

    建立一个新的连接。在连接属性中,执行以下操作:

    常规选项卡:在“常规”选项卡中,输入:

    主机名/IP 地址:本地主机

    端口:4000

    用户名:ServerPilot分配的你的mysql数据库用户

    用户名:ServerPilot分配给你的mysql数据库密码

    在“SSH”选项卡中,不要选中复选标记,这样 Navicat 就不会单独尝试通过 SSH 连接。它将依赖 PuTTY 的 SSH 隧道。

    返回“常规”选项卡,然后单击“测试连接”。它应该说连接成功。让我知道它是否适合你。

    【讨论】:

    • 第一部分(关于 AllowTcpForwarding)似乎没有任何效果,但你的答案的第二部分(关于 PuTTY 设置)就像一个魅力。谢谢!
    猜你喜欢
    • 2013-04-09
    • 2014-02-18
    • 1970-01-01
    • 2021-08-07
    • 2019-03-30
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多