无法从Tomcat连接到MySQL数据库

3

嘿,我遇到了这个错误:

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

我已经尝试了这两个驱动程序,但是两者的错误都是相同的。 - fmsf
2个回答

2
驱动程序错误 - 使用“com.mysql.jdbc.Driver”类。
在JSP中使用脚本代码?哦,我的天啊 - 这不好。
但这些并不是你问题的原因。
你是否授予了该用户名和密码的权限?以下是示例步骤:
1. 以root身份登录:mysql -h localhost -u root -p ;密码= <您的管理员密码> 2. “create database x;” 3. “create user p identified by ‘q’;” 4. “grant all on x.* to ‘x’@’%’;”
在连接到数据库时,使用您用于创建用户的用户名p和密码q。
确保服务正在上线并侦听端口3306。打开命令窗口并键入“netstat -a”,查找端口3306上的监听器。
MySQL错误数据库中的此条目也可能相关。
以后参考,我发现将收到的任何错误消息粘贴到Google中很有帮助。我遇到特定问题的人可能不止一个。
即使您设法解决此问题并使其正常工作,这仍然是一个致命的缺陷设计。 JSP直接连接到数据库 - 除了您以明文输入的用户名和密码外,没有安全性。您真的不想这样做。
您遇到连接问题。首先将其与JSP分离。
1. 您能否使用命令窗口中的MySQL管理工具进行连接? 2. 您能否编写一个简单的Java类以成功连接到数据库?

是的,几个小时前我发现了这个问题并将其添加到hosts.allow中,但仍然没有任何作用,我开始感到绝望:S - fmsf
啊,好的,哈哈,你打成了"org.mysql",所以我找不到它 :) 我已经谷歌了几个小时了。 - fmsf
对于第一个问题,我的回答是“是的”,对于第二个问题,这就是为什么我变得绝望了:S。 - fmsf
你使用的是哪个JDK?在命令行中输入“java -version”。 - duffymo
java版本“1.6.0_15” Java(TM) SE Runtime Environment(构建1.6.0_15-b03) Java HotSpot(TM) Client VM(构建14.1-b02,混合模式,共享) - fmsf
显示剩余4条评论

0

我将MySQL版本从5.1降级到了5.0,现在一切都正常工作了。可能是5.1版本中的某种bug。

好了,谢谢你的帮助 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接