【问题标题】:MySQLNonTransientConnectionException from ColdFusion application来自 ColdFusion 应用程序的 MySQLNonTransientConnectionException
【发布时间】:2014-12-05 14:26:03
【问题描述】:

我们在虚拟服务器上有一个原始的 Debian 7。带有 OpenJDK 1.7.0_65 的 Tomcat7 连接到本地 MySQL 5.5 安装。具有 ColdFusion 核心(Razuna,一个 MAM)的 tomcat 应用程序在安装时抛出此异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

就查找此异常而言,异常本身的原因有很多,因此异常类型之后的消息很重要。

我们已经转储了 ColdFusion 数据库连接对象,它看起来像这样:

struct
connectionretries 0
connectiontimeout 120
connectstring zeroDateTimeBehavior=convertToNull
databasename razuna
description [empty string]
displayname mysql
drivername com.mysql.jdbc.Driver
hoststring jdbc:mysql://localhost:3306/razuna?cacheResultSetMetadata=false&autoReconnect=true&useEncoding=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
initstring [empty string]
logintimeout 120
maxconnections 3
name mysql
password [thecorrectpassword]
perrequestconnections false
port 3306
server localhost
sqldelete true
sqlinsert true
sqlselect true
sqlstoredprocedures true
sqlupdate true
username razuna

看起来不错。因此,我们尝试在 MySQL 端诊断问题。打开通用日志后,我们可以看到通用日志中没有条目。我们想到的最后一件事是给 Tomcat7 用户一个交互式 shell,然后尝试使用相同的参数(主机、端口、用户、密码)手动登录 MySQL,这就像一个魅力。此外,比较另一台服务器(具有相同提供商)的软件,其中相同的应用程序在相同的情况下运行,一切似乎都是相同的:Debian 版本、Java 版本和风味、Tomcat 版本。

我们不知道如何从这里开始。任何帮助表示赞赏。

编辑 1:我们已经用 MySQL 根用户进行了尝试,只是为了排除应用程序的专用用户存在一些奇怪的权限问题的可能性。错误信息是一样的。

【问题讨论】:

  • 你使用的是IPV4还是IPV6什么连接?
  • 据我们所知,它应该是一个 IPv4 连接。服务器没有 v6 地址。但是,无论如何都不是使用套接字与 MySQL 实例进行本地连接吗?

标签: java mysql tomcat jdbc coldfusion


【解决方案1】:

试试这些解决方案。任何人都可以帮助你:

  1. 如果您的系统上启用了 IPv6,请尝试使用 127.0.0.1 而不是 localhost

  2. GRANT ALL PRIVILEGES ON *.* TO 'localhost'@'%' IDENTIFIED BY PASSWORD '52819c504481470a' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

【讨论】:

  • 仅 IPv4,从 ifconfig 中可以看出。
  • 尝试后告诉我。
  • 我在上面添加了一些信息。 root 用户也有同样的问题,所以可能不是权限问题。而且我不确定授予 localhost@% 权限实际上会改变什么。
  • 你检查过全局连接数吗,有时会出现这个问题是因为set @@global.max_connections = 100;
  • 服务器上没有人。 Nagios 每分钟会出现几次以检查某些指标,但除此之外,Tomcat 应用程序是唯一连接到服务器的应用程序。
猜你喜欢
  • 1970-01-01
  • 2011-01-18
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2011-09-08
  • 2013-06-28
相关资源
最近更新 更多