无法创建PoolableConnectionFactory

问题是什么? 无法连接数据库?

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ( 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.) 

这是问题的真正原因:

引起:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

您有数据库通信链接问题。 确保您的应用程序具有对数据库的网络访问权限(并且防火墙不会阻止数据库的端口)。

这是一个网络问题。 检查数据库连接。 您的数据库连接链接,用户名和密码错误或您的数据库服务器已停止。

我在源URL中遇到了与localhost相同的问题。 我用127.0.0.1而不是localhost解决了。

这是由avast防病毒引起的。 您可以禁用avast防火墙,只允许Windows防火墙处于活动状态。

当我使用chef在VirtualBox VM上设置tomcat和mysql服务器时遇到同样的问题。

在这种情况下,我认为真正的问题是VirtualBox似乎将非localhost地址分配给eth0之类的

 [vagrant@localhost webapps]$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:60:FC:47 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 

然后使用10.0.2.15作为mysql服务器绑定地址的厨师食谱的自动检测function。

所以在我的案例中为Chef的配方解决问题的节点参数指定绑定地址。 我希望这些信息可以帮助人们使用厨师和流浪汉。

 { "name" : "db", "default_attributes" : { "mysql" : { "bind_address" : "localhost" ... } 

这是因为防火墙阻止了数据库连接。

禁用防火墙,然后再次尝试运行该程序。 它对我有用……:D

我在pom.xml中更改了驱动程序版本并帮助了我

  org.postgresql postgresql 42.2.2  

在我的情况下,解决方案是删除属性

 validationQuery="select 1" 

来自(Derby DB)资源标签。

如果你使用apache tomcat 8.0版本,而不是它,使用tomcat 7.0我试过localhost到127.0.0.1并关闭防火墙但是没有工作,但是使用tomcat 7.0并且现在正在工作

我有类似的错误。 更改JDBC URL以使用127.0.0.1而不是localhost帮助。

也曾尝试更改catalina.policy文件中的条目,但这没有帮助。 我更改的条目是 – java.net.SocketPermission