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

Posted

技术标签:

【中文标题】无法从 PhpStorm 远程连接到 KINSTA 站点的 MySQL【英文标题】:Unable to connect to KINSTA site's MySQL remotely from PhpStorm 【发布时间】:2021-01-10 12:16:20 【问题描述】:

我有一个托管在 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 连接时!

谁能帮帮我?

【问题讨论】:

【参考方案1】:

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

步骤如下;

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

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

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

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

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

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

nc 127.0.0.1 8888

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

DB SETTINGS after NC COMMAND

【讨论】:

PhpStorm 已经支持 SSH(所以你不需要在它之外做任何事情)。你试过吗?屏幕截图上的 SSH/SSL 选项卡?它将建立 SSH 隧道并使用它连接到这样的远程数据库。 jetbrains.com/help/phpstorm/configuring-ssh-and-ssl.html#ssh 由于 PhpStorm/DataGrip 通过 TCP/IP 建立与数据库的连接,它需要准确的端口或端口范围才能连接。很明显,您需要端口转发,您可以通过 SSH/SSL 选项卡来完成。【参考方案2】:

对于 Kinsta DB,尝试连接到端口 3307,这是 3306 的 C2S 端口转发。这对我有用。

127.0.0.1:3307

【讨论】:

以上是关于无法从 PhpStorm 远程连接到 KINSTA 站点的 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

PhpStorm 9:为啥通过 FTP 连接时远程路径的目录/文件不显示

FileZilla连接时,PhpStorm无法连接到FTP

无法从 Mac lion 连接到远程 mysql

无法从 Windows 连接到远程 HDFS

无法从 Express 连接到远程 Redis

无法从远程计算机上的 mysql 工作台连接到 phpmyadmin 或数据库