PHPStorm无法连接到本地MySQL

时间:2015-08-06 19:53:16

标签: mysql macos jdbc

我在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则无需以任何方式连接。

解决问题的好建议?谢谢!

1 个答案:

答案 0 :(得分:1)

问题是MySQL连接的端口。

要查找我使用的正确端口号:

mysql > select user();
mysql > show variables;

除其他外,这显示了MySQL连接的端口,它是3307而不是默认的3306,因此连接被拒绝。