Jdbc 连接到数据源phpstorm

Jdbc 连接到数据源phpstorm,jdbc,odbc,mysql-connector,phpstorm,Jdbc,Odbc,Mysql Connector,Phpstorm,我正在尝试将PHPStorm连接到我网站服务器上的数据库,该服务器位于BlueHost的Linux设备上 为此,我单击了屏幕右侧的Data Sources选项卡,+图标,然后DB Data Source弹出一个Data Source Properties对话框。我输入了源的名称,将数据源级别设置为Project。然后下载MySQL连接器/J-5.1.18 JDBC驱动程序文件。这使JDBC驱动程序类充满了大约6-7个类,包括com.mysql.JDBC.Driver 我认为我遇到的问题是数据库U

我正在尝试将PHPStorm连接到我网站服务器上的数据库,该服务器位于BlueHost的Linux设备上

为此,我单击了屏幕右侧的Data Sources选项卡,+图标,然后DB Data Source弹出一个Data Source Properties对话框。我输入了源的名称,将数据源级别设置为Project。然后下载MySQL连接器/J-5.1.18 JDBC驱动程序文件。这使JDBC驱动程序类充满了大约6-7个类,包括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)
与数据源的连接失败
java.sql.SQLException:通信链路故障
成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
位于com.mysql.jdbc.MysqlIO(MysqlIO.java:344)
位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:792)
位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
在RemoteDriverImpl.connect(RemoteDriverImpl.java:27)中
在LocalDataSource.getConnection(LocalDataSource.java:105)中

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

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

为此,我在我的托管帐户的cPanel中单击PHPMyAdmin旁边的“remotemysql”。cPanel自动检测到我的IP范围,并建议我添加它。一旦我这样做了,其他一切就都安排妥当了


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

如果您使用的是Mamp,并且面临此问题,只需打开Mamp并取消选中“仅允许本地访问”

1)问题是--您的远程数据库是否允许远程连接?如果它位于共享主机上(或者运行MySQL的服务器不完全由您控制),则极有可能禁用远程连接(出于安全和性能目的)。2) 至于实际的连接字符串——只需使用该下拉框中的一个示例并填写您的详细信息(只要远程服务器接受这种连接)。。。看起来是这样,但我被迫将我的IP地址(范围)添加到允许的IP地址中。一旦我做到了这一点,其他一切都进展顺利谢谢谢谢你为我节省了另外两个小时:)我想这只适用于MAMP pro。。是否在某个文件的某个位置设置了此选项?