我在OsX上尝试将PHP Storm连接到MySQL。 虽然使用MAMP它工作正常,但现在我直接使用MySQL,从官方网站下载,PHPStorm不再连接到MySQL。
PHPStorm返回此错误:
与MyDatabase @ localhost的连接失败java.sql.SQLException: 通信链路故障
成功发送到服务器的最后一个数据包是0毫秒 前。驱动程序未收到来自服务器的任何数据包。在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:389)at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1038) 在com.mysql.jdbc.MysqlIO。(MysqlIO.java:338)at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2237) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069) 在com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:794)at com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:44)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:389)at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)at at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 在RemoteDriverImpl.connect(RemoteDriverImpl.java:27)中 RemoteUtil.access $ 100(RemoteUtil.java:36)in RemoteUtil $ RemoteInvocationHandler.invoke(RemoteUtil.java:229)at com.sun.proxy。$ Proxy122.connect(未知来源)in LocalDataSource.getConnection(LocalDataSource.java:240)引起: java.net.ConnectException:拒绝连接 java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241) 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)at java.net.Socket.connect(Socket.java:527)at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:213) 在com.mysql.jdbc.MysqlIO。(MysqlIO.java:297)at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2237) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069) 在com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:794)at com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:44)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:389)at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)at at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 在RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
中
我认为这与配置有关,但我无法理解究竟是哪个问题。
PHPMyAdmin只需使用用户和密码正确连接,而PHP Storm则无需以任何方式连接。
解决问题的好建议?谢谢!
答案 0 :(得分:1)
问题是MySQL连接的端口。
要查找我使用的正确端口号:
mysql > select user();
mysql > show variables;
除其他外,这显示了MySQL连接的端口,它是3307而不是默认的3306,因此连接被拒绝。