无法从tomcat连接到MySQL数据库

时间:2009-11-14 19:03:03

标签: mysql jsp connection tomcat6

嘿,我收到了这个错误:

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;
};

任何人都知道为什么会出现这个错误?

编辑: service mysql status给出了这个:

 * /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

2 个答案:

答案 0 :(得分:2)

驱动程序错误 - 使用“com.mysql.jdbc.Driver”类。

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

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

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

  1. 以root身份登录:mysql -h localhost -u root -p&lt; ret&gt ;;密码=&lt;您的管理员密码&gt;
  2. “create database x;”
  3. “创建由'q'标识的用户p;”
  4. “将x。*全部授予'x'@'%';”
  5. 提供用于在连接数据库时创建用户的用户名p和密码q。

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

    来自MySQL错误数据库的

    This entry也可能是相关的。

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

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

    您遇到了连接问题。将其与JSP分开,作为初学者。

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

答案 1 :(得分:0)

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

非常感谢您的帮助:)