Phpstorm 数据库:java.sql.SQLException:通信链接失败
Posted
技术标签:
【中文标题】Phpstorm 数据库:java.sql.SQLException:通信链接失败【英文标题】:Phpstorm Database : java.sql.SQLException: Communications link failure 【发布时间】:2015-02-04 17:38:30 【问题描述】:我正在使用 JetBrains phpStorm 开发一个网站。 我使用默认设置创建了一个数据库,当我尝试测试连接或连接到数据库时,弹出此错误:
与 db_IHM 的连接失败 java.sql.SQLException: 通信链路故障
最后一个成功发送到服务器的数据包是 0 毫秒 前。驱动程序没有收到来自服务器的任何数据包。在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:377) 在 com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1036) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:338) 在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2232) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) 在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:790) 在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:44) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:377) 在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 在 com.intellij.persistence.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) 在 sun.rmi.transport.Transport$1.run(Transport.java:177) 在 sun.rmi.transport.Transport$1.run(Transport.java:174) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:173) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:724) 在 sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275) 在 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252) 在 sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) 在 java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) 在 java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) 在 com.sun.proxy.$Proxy86.connect(Unknown Source) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 com.intellij.execution.rmi.RemoteUtil$RemoteInvocationHandler.invoke(RemoteUtil.java:214) 在 com.sun.proxy.$Proxy87.connect(Unknown Source) 在 com.intellij.javaee.module.view.dataSource.LocalDataSource.getConnection(LocalDataSource.java:241) 在 com.intellij.javaee.module.view.dataSource.LocalDataSource.getConnection(LocalDataSource.java:217) 在 com.intellij.javaee.dataSource.DataSource.getConnection(DataSource.java:319) 在 com.intellij.javaee.dataSource.DataSource.performJdbcOperation(DataSource.java:363) 在 com.intellij.javaee.dataSource.AbstractDataSource.refreshMetaData(AbstractDataSource.java:32) 在 com.intellij.javaee.module.view.dataSource.DataSourceUiUtil$2.run(DataSourceUiUtil.java:177) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:464) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 在 com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) 在 com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:373) 在 com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:420) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:724) 在 com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:150) 引起:java.net.ConnectException:连接被拒绝:连接在 java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:579) 在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:213) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:297) 在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2232) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) 在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:790) 在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:44) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:377) 在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 在 com.intellij.persistence.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) 在 sun.rmi.transport.Transport$1.run(Transport.java:177) 在 sun.rmi.transport.Transport$1.run(Transport.java:174) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:173) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:724)
【问题讨论】:
1) 双重(三重)检查您的登录详细信息(用户名、密码、主机、端口) 2) 防火墙问题? 3)也许你的登录不允许从这个主机连接——检查你的 MySQL 中的登录权限。 P.S.在过去 1 年左右的时间里,我看到了 5 或 6 个关于 MySQL 连接问题的问题——在所有情况下,都是用户配置错误,而不是 IDE 问题。 【参考方案1】:在 MAMP 上与 PHPStorm 有同样的问题。检查安装 MySQL 的 localhost 中的端口。它是 8889 而不是默认的 3306。更新端口为我解决了这个问题。
【讨论】:
【参考方案2】:如果您更新端口号,此问题将得到解决。所以我认为如果您知道找出安装 mysql 的端口号的步骤会很有帮助。
在您的 mysql 客户端中输入以下 sql 查询:
SHOW GLOBAL VARIABLES LIKE 'PORT';
或者使用这个 *** 链接
How to test which port MySQL is running on and whether it can be connected to?
【讨论】:
【参考方案3】:我遇到了这个问题,我需要启用“允许网络访问 mysql”才能工作。
【讨论】:
以上是关于Phpstorm 数据库:java.sql.SQLException:通信链接失败的主要内容,如果未能解决你的问题,请参考以下文章
phpstorm设置了utf8编码浏览器打开乱码。数据库,phpstorm设置的都是utf8。如