通过 SSH 和 Navicat 连接到 Serverpilot 上的 MySQL
Connecting to MySQL on Serverpilot via SSH & Navicat
有人在 vps 上使用 ServerPilot 并且能够使用 Navicat 通过 SSH 连接到 MySQL 服务器吗?在其他 servers/panels 上,我一直这样做,没问题;但它不会连接到 ServerPilot 上的 MySQL 数据库(Navicat 给出 "SSH connection error; Timeout")。我在我的 windows 台式电脑上使用 Navicat,试图连接到我的远程 ubuntu VPS 数据库。
在我多年来尝试过的所有其他 server/panel 上,此配置始终有效:
常规选项卡:
- 主机Name/IP地址:127.0.0.1(或"localhost")
- 端口: 3306.
- 用户名: [数据库用户名,例如ServerPilot分配的用户名]
- 密码 [数据库密码,例如ServerPilot分配的那个]
SSH 选项卡:
- 主机Name/IP地址:[我VPS的主IP]
- Port: 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 隧道。对于其他 servers/panels 上的数据库,Navicat 可以完美地连接到 MySQL。但不是当数据库在 ServerPilot 上时(它给出错误:“2013 - 在查询期间丢失与 MySQL 服务器的连接”,当 "testing" Navicat 中的连接时)。
当然,我不是唯一尝试在 ServerPilot 服务器上连接到 MySQL 的人。如果你让它工作,或者如果你知道如何,请解释一下。 (顺便说一句,phpMyAdmin 在 ServerPilot 上运行良好,但我发现在 php 中编程时 Navicat 对于某些任务更加方便。)谢谢。
首先,如 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 仍然没有连接到 VPS 上连接到 ServerPilot 的删除 MySQL 服务器,那么撤消你对 /etc/ssh/sshd_config 所做的任何更改(并重新启动 ssh)。您需要先在 PuTTY 中建立 SSH 隧道,而不是使用 Navicat 中的 SSH 设置进行连接。
在 PuTTY 中建立一个特殊的 SSH 隧道:如果上面的第一步不起作用,请尝试此步骤。您引用的 cs-wwu 站点中的说明将不适用于 MySQL on Ubuntu with ServerPilot(即使它打开了一个 SSH 终端连接,您可以将其用于命令行操作) .相反,您需要遵循 2004 年 8 月 6 日在 https://dev.mysql.com/doc/refman/5.7/en/windows-and-ssh.html 下的评论中的方法。这给出了基本的想法。下面我将详细介绍整个过程,循序渐进:
要将 Navicat 连接到 ServerPilot Ubuntu VSP 上的 MySQL,请在 PuTTY 中尝试这些设置:
1. 在主会话屏幕中,输入:
主机名(或 IP 地址):serverpilot@123.45.678.90(输入您的 VPS 的 IP 地址)
端口: 22
Saved Sessions:键入名称,例如 ServerPilot-MySQL
2. 在左侧的类别窗格中,单击连接、SSH、隧道
在隧道屏幕中,输入:
Source Port: 4000(这可以是 1024 以上的任何数字,但尚未在您的 Windows 计算机上使用。我使用 4000,因为我的端口 3306 是当前由我的 mysql 在 Windows 上的本地 WAMP 服务器上使用。
目的地:localhost:3306
3. 单击 "Add" 按钮。现在在“转发端口”框中,您应该会看到:L4000 localhost:3306
4. 返回“类别”窗格顶部并单击“会话”。在会话屏幕中,单击保存按钮。
5. 突出显示您刚刚在保存的会话框中保存的设置,然后单击加载按钮。然后点击打开。
现在 PuTTY 终端会说:
使用用户名 "serverpilot"。
serverpilot@123.45.678.90的密码:
6. 复制您的 "serverpilot" 用户密码,然后在 "password" 旁边的提示处右键单击鼠标将其粘贴到 PuTTY 中。
现在您已经从 PuTTY 打开了正确类型的 SSH 隧道。现在使用该隧道连接 Navicat。
连接 Navicat:
建立新连接。在连接属性中,执行此操作:
常规选项卡:在"General"选项卡中,输入:
主机Name/IP地址:本地主机
端口: 4000
用户名: ServerPilot
分配给你的mysql数据库用户
用户名: ServerPilot
分配给你的mysql数据库密码
在 "SSH" 选项卡中,不勾选复选标记,这样 Navicat 将不会单独尝试通过 SSH 连接。它将依赖于 PuTTY 的 SSH 隧道。
返回“常规”选项卡并单击 "Test connection." 它应该显示“连接成功”。让我知道它是否适合你。
有人在 vps 上使用 ServerPilot 并且能够使用 Navicat 通过 SSH 连接到 MySQL 服务器吗?在其他 servers/panels 上,我一直这样做,没问题;但它不会连接到 ServerPilot 上的 MySQL 数据库(Navicat 给出 "SSH connection error; Timeout")。我在我的 windows 台式电脑上使用 Navicat,试图连接到我的远程 ubuntu VPS 数据库。
在我多年来尝试过的所有其他 server/panel 上,此配置始终有效:
常规选项卡:
- 主机Name/IP地址:127.0.0.1(或"localhost")
- 端口: 3306.
- 用户名: [数据库用户名,例如ServerPilot分配的用户名]
- 密码 [数据库密码,例如ServerPilot分配的那个]
SSH 选项卡:
- 主机Name/IP地址:[我VPS的主IP]
- Port: 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 隧道。对于其他 servers/panels 上的数据库,Navicat 可以完美地连接到 MySQL。但不是当数据库在 ServerPilot 上时(它给出错误:“2013 - 在查询期间丢失与 MySQL 服务器的连接”,当 "testing" Navicat 中的连接时)。
当然,我不是唯一尝试在 ServerPilot 服务器上连接到 MySQL 的人。如果你让它工作,或者如果你知道如何,请解释一下。 (顺便说一句,phpMyAdmin 在 ServerPilot 上运行良好,但我发现在 php 中编程时 Navicat 对于某些任务更加方便。)谢谢。
首先,如 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 仍然没有连接到 VPS 上连接到 ServerPilot 的删除 MySQL 服务器,那么撤消你对 /etc/ssh/sshd_config 所做的任何更改(并重新启动 ssh)。您需要先在 PuTTY 中建立 SSH 隧道,而不是使用 Navicat 中的 SSH 设置进行连接。
在 PuTTY 中建立一个特殊的 SSH 隧道:如果上面的第一步不起作用,请尝试此步骤。您引用的 cs-wwu 站点中的说明将不适用于 MySQL on Ubuntu with ServerPilot(即使它打开了一个 SSH 终端连接,您可以将其用于命令行操作) .相反,您需要遵循 2004 年 8 月 6 日在 https://dev.mysql.com/doc/refman/5.7/en/windows-and-ssh.html 下的评论中的方法。这给出了基本的想法。下面我将详细介绍整个过程,循序渐进:
要将 Navicat 连接到 ServerPilot Ubuntu VSP 上的 MySQL,请在 PuTTY 中尝试这些设置:
1. 在主会话屏幕中,输入:
主机名(或 IP 地址):serverpilot@123.45.678.90(输入您的 VPS 的 IP 地址)
端口: 22
Saved Sessions:键入名称,例如 ServerPilot-MySQL
2. 在左侧的类别窗格中,单击连接、SSH、隧道
在隧道屏幕中,输入:
Source Port: 4000(这可以是 1024 以上的任何数字,但尚未在您的 Windows 计算机上使用。我使用 4000,因为我的端口 3306 是当前由我的 mysql 在 Windows 上的本地 WAMP 服务器上使用。
目的地:localhost:3306
3. 单击 "Add" 按钮。现在在“转发端口”框中,您应该会看到:L4000 localhost:3306
4. 返回“类别”窗格顶部并单击“会话”。在会话屏幕中,单击保存按钮。
5. 突出显示您刚刚在保存的会话框中保存的设置,然后单击加载按钮。然后点击打开。
现在 PuTTY 终端会说: 使用用户名 "serverpilot"。 serverpilot@123.45.678.90的密码:
6. 复制您的 "serverpilot" 用户密码,然后在 "password" 旁边的提示处右键单击鼠标将其粘贴到 PuTTY 中。
现在您已经从 PuTTY 打开了正确类型的 SSH 隧道。现在使用该隧道连接 Navicat。
连接 Navicat:
建立新连接。在连接属性中,执行此操作:
常规选项卡:在"General"选项卡中,输入:
主机Name/IP地址:本地主机
端口: 4000
用户名: ServerPilot
分配给你的mysql数据库用户用户名: ServerPilot
分配给你的mysql数据库密码在 "SSH" 选项卡中,不勾选复选标记,这样 Navicat 将不会单独尝试通过 SSH 连接。它将依赖于 PuTTY 的 SSH 隧道。
返回“常规”选项卡并单击 "Test connection." 它应该显示“连接成功”。让我知道它是否适合你。