RESIN/TOMCAT和MYSQL的连接解决方法 cloud/2003.10.15 mail:flashc@21cn.com
如果你不想看太多废话直接看下面3句话就ok了 解决方法的主要手段: 1.mysql的授权用户权限必须@%而不是@localhost 2.jsp使用jdbc驱动连接数据库的连接字符实际上应该算远程访问 3.切记:@%代表在远程的权限,@localhost实际上只有在本机的权限
也许我太笨了,折磨了我一个多月吧,这个问题,一直没法连接到数据库上,头都大了因我安装mysql后习惯删除user表里的3个多余的帐号,以加强安全,所以这个问题一直没解决掉(但我想不删也好象一样有问题吧?毕竟那几个帐号都不是@%的),总是找不到原因,在CU的斑竹的提示下(虽然没给我实际解决的方法,但我还是要谢谢他们),后来根据出错信息查了一下国外的BBS,找到了一个类似的回答同样的错误,不过一个老外提示说把连接字符串里的localhost换成实际的域名或者IP我试了一下,没效,不过我突然想了下,又加了一个帐号@%的试验,成功了!心情很爽,再也不用郁闷了,还有,说一下,mysql这个数据库只有root帐号能有管理的特权,其他帐号是没权限动它的。
希望我的心得能给别人带来些帮助!
下面是测试用的jsp脚本,测试前请确保你的test数据库里面有个test表,随便填 两个字段和输入几行数据。 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("com.mysql.jdbc.Driver").newInstance(); String url ="jdbc:mysql://localhost/test?user=test&password=test&useUnicode=true&characterEncoding=8859_1" ; //假设test是你的数据库 Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; //从test表读数据 ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> </body> </html>  
|