AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JSP

RESIN/TOMCAT和MYSQL的连接解决方法

51自学网 http://www.51zixue.net
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>

 

 

 
上一篇:jsp连接数据库大全  下一篇:JSP数据库连接池的必要性