mysql - Tomcat 6 MySQL -> 奇怪的连接错误

标签 mysql tomcat

我有一个带有 Apache -> mod_jk -> Tomcat 6 -> MySQL 的 Ubuntu 服务器。每次 Tomcat 加载一个新的 *.war 或重新启动时,它都会给我这个错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 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:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532)

现在奇怪的是:有时在一段时间后(有时是几分钟或几小时)什么都不做,应用程序运行起来就像一个魅力 - 没有任何其他错误。

连接是通过 tomcat 本身(使用这个上下文容器)建立的,并与 127.0.0.1 建立连接 phpmyadmin 也没有问题。

最佳答案

雷米, 不幸的是,这个问题没有一个“简单”的答案,因为它在很多方面都有所不同。您收到的错误是一般通信错误,tomcat 返回表示通信问题,但没有详细说明问题是什么。

首先,我建议检查您的 mysql 是否正在监听 127.0.0.1,而不仅仅是本地主机。差异化的原因是具有 ipv6 的服务器(即使它只是本地::1)将首先尝试优先使用此连接。

如果你执行 netstat -an | grep LISTEN,您应该看到端口 3306。那个套接字在监听什么?确保这与您在 tomcat 设置中指定的内容相匹配,然后从那里继续。

关于mysql - Tomcat 6 MySQL -> 奇怪的连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120169/

相关文章:

mysql - 如何使用 MySQL 计算现有值和不存在值?

php - 如何更新从 Laravel 中的 N 到 N 关系创建的表的外键?

php - LOAD DATA LOCAL INFILE 在... PHP 中被禁止

tomcat - 在 aws apache tomcat 上部署并运行 war 文件

java - 运行 Spring WebApp 时代码状态 406

mysql - 按具有 max(date_field) 的 id 分组

PHP MariaDB 插入 NULL 值不起作用

tomcat - 为什么我在 OPENSHIFT 上托管的应用程序中出现 ERR_TOO_MANY_REDIRECTS?

java - xslt 转换后为什么在 Tomcat/bin 文件夹中生成文件?如何将此目录更改为 webapps/myApp?

java - 在 tomcat 上运行非 web java 应用程序