通过SSH连接到Serverpilot上的MySQL Navicat的

时间:2018-05-24 00:04:16

标签: php mysql ssh server navicat

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

在我多年来尝试过的每一台服务器/面板上,这种配置始终有效:

GENERAL标签:

  • 主机名/ 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编程时对某些任务更方便。)谢谢。

1 个答案:

答案 0 :(得分:0)

首先,如https://www2.navicat.com/manual/online_manual/en/navicat/mac_manual/SSHSettings.html所述,检查“AllowTcpForwarding”设置(应该是“yes” - 否则,将禁用SSH端口转发):/ etc / ssh / sshd_config。如果您编辑了该文件,请重新启动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日评论中遵循该方法。这给出了基本的想法。在这里,我将逐步详细介绍整个过程:

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

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

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

端口:22

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

2. 在左侧的“类别”窗格中,单击“连接”,“SSH”,“隧道”

在隧道屏幕中,输入:

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

目的地:localhost:3306

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

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

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

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

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

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

与Navicat联系

建立新连接。在“连接属性”中,执行以下操作:

常规标签:在“常规”标签中,输入:

主机名/ IP地址:localhost

端口:4000

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

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

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

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