【问题标题】:Can't connect to MySQL database from tomcat无法从tomcat连接到MySQL数据库
【发布时间】:2010-12-16 15:40:50
【问题描述】:

嘿,我收到了这个错误:

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

我只是想连接到数据库。使用此代码

<%@page import="java.sql.*"%>

<%
try{
//  Class.forName("com.mysql.jdbc.Driver");
    Class.forName("org.gjt.mm.mysql.Driver");

    out.println("found");
} catch (ClassNotFoundException ex){
    out.println("Erro<br/>");
    out.println(ex.toString());
} catch (Exception e){
    out.println(e.toString());

}

Connection ocon;

try{
ocon = DriverManager.getConnection("jdbc:mysql://localhost/cpjcoimbra?autoReconnect=true", "*****", "*****"); //password matches
out.print("connected");
} catch (Exception e){
    out.println(e.toString()+"<br/>");
}

%>

它确实找到了驱动程序,但是当我尝试连接到数据库时出现该错误。

我在 catalina 50.local.policy 上拥有此权限

grant codeBase "file:/var/lib/tomcat6/WEB-INF/lib/-" {
  permission java.security.AllPermission;
};

有人知道为什么会出现这个错误吗?

编辑: 服务 mysql 状态给出了这个:

 * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.37, for debian-linux-gnu on i486
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version      5.1.37-1ubuntu5
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         1 hour 32 min 21 sec

Threads: 1  Questions: 103  Slow queries: 0  Opens: 171  Flush tables: 1  Open tables: 41  Queries per second avg: 0.18

【问题讨论】:

  • 这两个驱动我都试过了,两者的错误都是一样的

标签: mysql jsp connection tomcat6


【解决方案1】:

驱动错误——使用“com.mysql.jdbc.Driver”类。

JSP 中的Scriptlet 代码?哦,我的 - 这不好。

但这些不是你的问题的原因。

您是否授予该用户名和密码的权限?以下是示例步骤:

  1. 以root身份登录:mysql –h localhost –u root –p ;密码 =
  2. “创建数据库 x;”
  3. “创建由‘q’标识的用户p;”
  4. “将 x.* 上的所有内容授予‘x’@’%’;”

提供您在连接到数据库时用于创建用户的用户名 p 和密码 q。

确保服务已启动并侦听端口 3306。打开命令 shell 并键入“netstat -a”并在端口 3306 上查找侦听器。

来自 MySQL 错误数据库的This entry 也可能是相关的。

为了将来参考,我发现将收到的任何错误消息粘贴到 Google 中会很有帮助。我可能不是第一个遇到特定问题的人。

即使你设法解决了这个问题并让它发挥作用,这仍然是一个有致命缺陷的设计。 JSP 直接连接到数据库——没有安全性,除了您以纯文本输入的用户名和密码。你真的不想这样做。

您遇到了连接问题。将其与 JSP 分开以供初学者使用。

  1. 您可以在命令行中使用 MySQL 管理工具进行连接吗?
  2. 你能写一个简单的Java类来成功连接数据库吗?

【讨论】:

  • 我唯一能找到的是这个: unix 2 [ ACC ] STREAM LISTENING 4787 /var/run/mysqld/mysqld.sock 我尝试将连接更改为 :4787 但仍然给出相同的错误。是的,我确实正确地创建了用户
  • 他们在我提供的链接中引用的主机文件怎么样?你改了吗?
  • 我在 mysql-connector-java-5.1.6-bin.jar 和其他任何地方都找不到该驱动程序:\ +1 寻求帮助
  • 是的,我在几个小时前发现了它并将其添加到 hosts.allow 中,但仍然什么也没做,我开始绝望了:S
  • 我刚刚在 mysql-connector-java-5.1.6-bin.jar 中查找了 com.mysql.jdbc.Driver,我可以在我的机器上看到它。
【解决方案2】:

我将 MySQL 从 5.1 降级到 5.0,现在一切正常。一定是 5.1 版本中的某种错误。

谢谢你的帮助:)

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 2019-04-11
    • 2016-09-30
    • 1970-01-01
    • 2020-04-08
    • 2011-03-30
    • 2016-12-03
    • 2014-01-25
    相关资源
    最近更新 更多