Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区 » 实战错误讨论  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Linux下java连接mysql数据库问题
ghostvic





发贴: 18
积分: 0
于 2008-01-10 00:00 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟写了一个用java连接mysql的试验程序,在A机器(RH linux)上能正确运行,在B机器(windows)也能正确运行,但是到了我的机器C上( RH linux)却总出异常。

哪位大哥帮忙给解答一下,谢谢。

源代码:

import java.sql.*;

public class OpenDB {
String userName = "user";

String userPassword = "pass";

private String driverName = "org.gjt.mm.mysql.Driver";

private String url = "jdbc:mysql://210.29.134.131/USER";

Connection dbConn;

public Connection getConnection() {
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(url, userName, userPassword);
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("Cannot connect to Database";
}
return dbConn;
}

public Statement getState() {
Statement stmt = null;
try {
stmt = this.getConnection().createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}

public int executeInsert(String strSql){
Statement stmt = this.getState();
try {
return stmt.executeUpdate(strSql);
} catch (SQLException e) {
System.out.println("Cannot execute Sql command: "+strSql);
}
return 0;
}

public ResultSet executeQuery(String strSql){
Statement stmt = this.getState();
try{
return stmt.executeQuery(strSql);
}catch (SQLException e){
System.out.println("Cannot execute Sql command: "+strSql);
}
return null;
}

public static void main(String[] args) {
OpenDB db = new OpenDB();

ResultSet rs = db.executeQuery("select * from user";
try {
while (rs.next()) System.out.println(rs.getString("DNS");
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
===================================================
异常为:
at java.lang.Class.initializeClass (libgcj.so.7)
at com.mysql.jdbc.NonRegisteringDriver.parseURL (NonRegisteringDriver.java:436)
at com.mysql.jdbc.NonRegisteringDriver.acceptsURL (NonRegisteringDriver.java:210)
at java.sql.DriverManager.getDriver (libgcj.so.7)
at java.sql.DriverManager.getConnection (libgcj.so.7)
at java.sql.DriverManager.getConnection (libgcj.so.7)
at OpenDB.getConnection (OpenDB.java:19)
at OpenDB.getState (OpenDB.java:30)
at OpenDB.executeQuery (OpenDB.java:4
at OpenDB.main (OpenDB.java:61)
Caused by: java.io.CharConversionException
at gnu.gcj.convert.Input_iconv.read (libgcj.so.7)
at java.lang.String.init (libgcj.so.7)
at java.lang.String.<init> (libgcj.so.7)
at com.mysql.jdbc.StringUtils.<clinit> (StringUtils.java:66)
at java.lang.Class.initializeClass (libgcj.so.7)
...9 more

====================================================
有以下几个条件:
1。A,C 在一个局域网,
2。数据库装在A上
3。A,C两个机器的mysql驱动都一样
4. 用C连接其他数据库也不行,出一样的异常。
5。A,C的classpath均为: /usr/java/jdk1.5.0_04/jre/lib/rt.jar:.:/etc/java/lib/mysql-connector-java-3.1.11-bin.jar
6。C上面跑其他的java程序正常



作者 Re:Linux下java连接mysql数据库问题 [Re:ghostvic]
JiafanZhou



版主


发贴: 736
积分: 61
于 2008-01-16 22:11 user profilesend a private message to usersend email to JiafanZhousearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
My first guess is to test if your computer C can connect to your computer A, using the IP Address you provided in the code.

run a ping utility to test if you can connect to A.

My second guess is that your computer A might have some network restriction for other LAN computers to connect to your database. By default, linux Redhat has some firewalls blocking the HTTP connection from other computers, prove that it is the case and then try to search some topic on the google.

Looking at your exception below:
at com.mysql.jdbc.NonRegisteringDriver.parseURL (NonRegisteringDriver.java:436)

Let me know if you still have the same problem.

Regards,
Jiafan



When I was a kid I used to pray every night for a new bike. Then I realized that The Lord doesn't work that way, so I stole one and asked him to forgive me.

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923