无法从 PhpStorm 远程连接到 KINSTA 站点的 MySQL

问题描述

我在 Kinsta 上托管了一个 wordpress 网站。

我正在尝试使用 SSH 从 PHPStorm 远程连接到其 MysqL 数据库

SSH 连接成功,但是当我尝试连接到主数据库时,出现以下错误

[08S01]
Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
java.io.EOFException: Can not read response from server. Expected to read 4 bytes,read 0 bytes before connection was unexpectedly lost.

我尝试联系 Kinsta 支持,但他们对此没有任何正确的答案。

请注意:如果我从 MysqL Workbench 连接到同一个数据库,它工作正常。只有当我从 PHPStorm 连接时才会这样!

有人可以帮我吗?

解决方法

我找到了解决方案。我认为这可能对面临同样问题的任何人都有帮助。

步骤如下;

为了让 PHP Storm 直接与数据库通信,它需要为正在使用的 SSH 隧道设置端口转发。

您需要将端口站点的端口绑定到本地端口并手动测试连接

您可以在 PHP Storm 中打开两个终端。 在第一个中,您可以运行以下命令并输入 SSH 密码

ssh -L 8888:127.0.0.1:3306 SSHUSERNAME@SITEEXTERNALIP -p SSHPORT -NnT

确保用 Kinsta 中显示的正确详细信息替换 SSH 用户名、SITE EXTERNAL IPSSHPORT分别是仪表板。

在第一个成功连接到 SSH 后,打开第二个选项卡并运行 nc 命令

nc 127.0.0.1 8888

如果可行,当通过 PHP Storm 连接到数据库时使用 SSH 隧道时,您可以在数据库连接设置中使用连接隧道 IP (127.0.0.1) 和连接隧道端口 (8888)。

DB SETTINGS after NC COMMAND

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...