免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1744 | 回复: 7
打印 上一主题 下一主题

jsp连接mysql出错,大家帮忙看看什么原因? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-03 20:30 |只看该作者 |倒序浏览
连接mysql出错了,快帮我解决呀!
我的jsp程序是这样写的:好象总提示数据库密码的问题.aini3001是我新建的用户,密码也是新设置的.到底错哪了呀?
<%@ page contentType="text/html;charset=gb2312"%>;   
<%@ page import="java.sql.*"%>;
<html>;
<body>;
<%
Class.forName("org.gjt.mm.mysql.Driver".newInstance();
String url="jdbc:mysql://localhost/sampdb?user=aini3001&password=aini3001&useUnicode=true&characterEncoding=GB2312" ;
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
String query="select student_id from absence";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
        int s=rs.getInt("1";
        out.print(s+"<br>;";
}
%>;
</body>;
</html>;

javax.servlet.ServletException: Invalid authorization specification,  message from server: "Access denied for user: 'aini3001@aini3001' (Using password: YES)"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.conmysql_jsp._jspService(conmysql_jsp.java:6
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.sql.SQLException: Invalid authorization specification,  message from server: "Access denied for user: 'aini3001@aini3001' (Using password: YES)"
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1977)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1900)
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:950)
com.mysql.jdbc.Connection.createNewIO(Connection.java:1771)
com.mysql.jdbc.Connection.<init>;(Connection.java:440)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:400)
java.sql.DriverManager.getConnection(DriverManager.java:512)
java.sql.DriverManager.getConnection(DriverManager.java:193)
org.apache.jsp.conmysql_jsp._jspService(conmysql_jsp.java:50)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

论坛徽章:
0
2 [报告]
发表于 2005-05-04 01:28 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

mysql不仅根据用户名密码来认证,还限制连接的hostname或者ip地址。要在mysql里面察看你这个用户的host是多少

mysql -u root -p mysql
select user,host,password from user where user='aini3001';

看看host是什么,如果要求不高就把host设成'%' 这样就不限制了

update user set host='%' where user='aini3001';

论坛徽章:
0
3 [报告]
发表于 2005-05-04 11:34 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

问题解决了,换了一种连接数据库的写法:
String url="jdbc:mysql://localhost/sampdb? ;
Connection conn= DriverManager.getConnection(url,"aini3001","aini3001";
但是还是感觉不爽,总觉得第一种写法也应该可以,但是不知道为什么就是编译不过去,如果非要用Connection conn= DriverManager.getConnection(url);这种方法,那前面的url应该怎么写呀?是不是用户名和密码的格式写的不对呀.

论坛徽章:
0
4 [报告]
发表于 2005-05-04 20:23 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

不推荐这种暴露数据库用户名和密码的写法!

论坛徽章:
0
5 [报告]
发表于 2005-05-10 08:10 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

那楼上的推荐一下更好的方法吧

论坛徽章:
0
6 [报告]
发表于 2005-05-10 10:56 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

代码片断为:

  1. Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  2. String url =jdbc:mysql://localhost/sampdb?user=aini3001&password=aini3001&useUnicode=true&characterEncoding=GB2312;               
  3. Connection conn= DriverManager.getConnection(url);                                                
  4. Statement stmt=conn.createStatement();
复制代码


错误提示为:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 4 in the jsp file: /test.jsp

Generated servlet error:
    [javac] Compiling 1 source file

/usr/local/jakarta-tomcat-4.1.31/work/Standalone/localhost/_/test_jsp.java:48: ';' expected



An error occurred at line: 4 in the jsp file: /test.jsp

Generated servlet error:
String url =jdbc:mysql://localhost/sampdb?user=aini3001&password=aini3001&useUnicode=true&characterEncoding=GB2312;
                ^
1 error
......

不知什么原因,如何解决?

论坛徽章:
0
7 [报告]
发表于 2005-05-10 23:34 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

你按照我回的第二种写法吧,第一种写发按理说也不应该有问题,但是不知道为什么编译不过去,好象问题出在数据库上,而不是代码有什么问题;
你的错误好象是你哪块写错了,好好对着代码看看.

论坛徽章:
0
8 [报告]
发表于 2005-05-11 08:55 |只看该作者

jsp连接mysql出错,大家帮忙看看什么原因?

按你的第二种写法,错误提示是一样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP