3

我正在尝试将 PHPStorm 连接到我网站服务器上的数据库,该数据库托管在 BlueHost 的 Linux 机器上。

为了做到这一点,我点击了屏幕右侧的数据源选项卡,+ 图标,然后DB 数据源弹出一个数据源属性对话框。我为源输入了一个名称,将Data Source Level设置为Project。然后下载 MySQL Connector/J-5.1.18 JDBC Driver Files。这用大约 6-7 个类填充了 JDBC 驱动程序类,包括com.mysql.jdbc.Driver

我相信我遇到的问题是在数据库 URL 上。它要求我不熟悉的 jdbc:// url。我使用了示例格式 jdbc:mysql://[host][,failoverhost...][:port]/[database] 以及我的用户名和密码。

对于主机,我尝试了localhost和 mysql 服务器框的名称###.bluehost.com。端口 3306,数据库的名称非常简单。

尝试测试连接时收到此错误...

Connection to Data Source failed
java.sql.SQLException: 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.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
in RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
in LocalDataSource.getConnection(LocalDataSource.java:105)

此问题与此处其他问题的主要区别在于,这不是连接到 wamp 或 mamp 堆栈,而是连接到远程数据库。

4

2 回答 2

10

如果您正在使用 Mamp 并且遇到此问题,只需打开 MAMP 并取消选中“仅允许本地访问”。

于 2014-01-20T08:53:44.607 回答
5

BlueHost 要求我将我的 IP 地址范围添加到允许的访问主机列表中。我使用的是共享主机帐户,因此 BlueHost 似乎允许在共享主机帐户上进行远程连接。

我通过在我的主机帐户的 cPanel 中单击 PHPMyAdmin 旁边的“远程 MySQL”来做到这一点。cPanel 自动检测到我的 IP 范围并建议我添加它。一旦我这样做了,其他一切都到位了。

感谢 LazyOne 为我指明了正确的方向。

于 2012-07-29T05:34:25.560 回答