mysql 版本 5.1.30 win32
myeclipse 7.5链接远程服务器的数据库时报错
sql exception:Communications link failureLast packet sent to the server was 0 ms ago.
false
代码:package cn.wlsh.db;import java.sql.*;public class DBManager { // 用户名 private String user = ""; // 密码 private String password = ""; // 主机 private String host = ""; // 数据库名字 private String database = ""; private static DBManager dbm = null; /*
*
* private String
* url="jdbc:mysql://"+host+"/"+"useUnicode=true&characterEncoding=GB2312";
*/ private String url = ""; private Connection con = null; Statement stmt; /**
*
* 私有的构造方法,保证外部不能实例化,只能由DBManager自己能提供自
*
* 己的实例,并且只能有一个。
*
* 根据主机、数据库名称、数据库用户名、数据库用户密码取得连接。
*
* @param host
* String
*
* @param database
* String
*
* @param user
* String
*
* @param password
* String
*/
private DBManager(String host, String database, String user, String password) { this.host = host; this.database = database; this.user = user; this.password = password; // 显示中文 this.url = "jdbc:mysql://" + host + "/" + database + "?zeroDateTimeBehavior=convertToNull"; try { Class.forName("org.gjt.mm.mysql.Driver"); } catch (ClassNotFoundException e) { System.err.println("class not found:" + e.getMessage()); } try { con = DriverManager.getConnection(this.url, this.user,
this.password);
// 连接类型为ResultSet.TYPE_SCROLL_INSENSITIVE,
// ResultSet.CONCUR_READ_ONLY stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); } catch (SQLException a) {
System.err.println("sql exception:" + a.getMessage()); } } /**
*
* 静态工厂方法,来获得一个DBManager实例
*/ public static DBManager getInstance(String host, String database,
String user, String password) { if (dbm == null) { dbm = new DBManager(host, database, user, password); } return dbm; } /**
*
* 返回取得的连接
*/ public Connection getCon() { return con; } /**
*
* 执行一条简单的查询语句
*
* 返回取得的结果集
*/ public ResultSet executeQuery(String sql) { ResultSet rs = null; try { rs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs; } /**
*
* 执行一条简单的更新语句 执行成功则返回true
*/ @SuppressWarnings("finally")
public boolean executeUpdate(String sql) { boolean v = false; try { v = stmt.executeUpdate(sql) > 0 ? true : false; } catch (SQLException e) { e.printStackTrace(); } finally {
return v;
}
}
public static void main(String[] args) {
DBManager db=new DBManager("127.0.0.1","mybbs","root","mysql");
String sql="insert into members (fid,username,password,email) values ('9954','aaaa','202CB962AC59075B964B07152D234B70','[email protected]')";
System.out.println(db.executeUpdate(sql));
}
}
<服务器IP 暂用本机IP代替.见谅...>执行main 方法时就报错. 链接本机是没问题的,增删该查都OK 就是链接服务器的时候出这种状况.关于mysql 版本 5.0的也是此状况网上找了许多 也没找到合适的解决办法, 高手谁给指点下?头疼....
myeclipse 7.5链接远程服务器的数据库时报错
sql exception:Communications link failureLast packet sent to the server was 0 ms ago.
false
代码:package cn.wlsh.db;import java.sql.*;public class DBManager { // 用户名 private String user = ""; // 密码 private String password = ""; // 主机 private String host = ""; // 数据库名字 private String database = ""; private static DBManager dbm = null; /*
*
* private String
* url="jdbc:mysql://"+host+"/"+"useUnicode=true&characterEncoding=GB2312";
*/ private String url = ""; private Connection con = null; Statement stmt; /**
*
* 私有的构造方法,保证外部不能实例化,只能由DBManager自己能提供自
*
* 己的实例,并且只能有一个。
*
* 根据主机、数据库名称、数据库用户名、数据库用户密码取得连接。
*
* @param host
* String
*
* @param database
* String
*
* @param user
* String
*
* @param password
* String
*/
private DBManager(String host, String database, String user, String password) { this.host = host; this.database = database; this.user = user; this.password = password; // 显示中文 this.url = "jdbc:mysql://" + host + "/" + database + "?zeroDateTimeBehavior=convertToNull"; try { Class.forName("org.gjt.mm.mysql.Driver"); } catch (ClassNotFoundException e) { System.err.println("class not found:" + e.getMessage()); } try { con = DriverManager.getConnection(this.url, this.user,
this.password);
// 连接类型为ResultSet.TYPE_SCROLL_INSENSITIVE,
// ResultSet.CONCUR_READ_ONLY stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); } catch (SQLException a) {
System.err.println("sql exception:" + a.getMessage()); } } /**
*
* 静态工厂方法,来获得一个DBManager实例
*/ public static DBManager getInstance(String host, String database,
String user, String password) { if (dbm == null) { dbm = new DBManager(host, database, user, password); } return dbm; } /**
*
* 返回取得的连接
*/ public Connection getCon() { return con; } /**
*
* 执行一条简单的查询语句
*
* 返回取得的结果集
*/ public ResultSet executeQuery(String sql) { ResultSet rs = null; try { rs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs; } /**
*
* 执行一条简单的更新语句 执行成功则返回true
*/ @SuppressWarnings("finally")
public boolean executeUpdate(String sql) { boolean v = false; try { v = stmt.executeUpdate(sql) > 0 ? true : false; } catch (SQLException e) { e.printStackTrace(); } finally {
return v;
}
}
public static void main(String[] args) {
DBManager db=new DBManager("127.0.0.1","mybbs","root","mysql");
String sql="insert into members (fid,username,password,email) values ('9954','aaaa','202CB962AC59075B964B07152D234B70','[email protected]')";
System.out.println(db.executeUpdate(sql));
}
}
<服务器IP 暂用本机IP代替.见谅...>执行main 方法时就报错. 链接本机是没问题的,增删该查都OK 就是链接服务器的时候出这种状况.关于mysql 版本 5.0的也是此状况网上找了许多 也没找到合适的解决办法, 高手谁给指点下?头疼....
http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
mysql 无法联接故障现象及原因
import java.sql.DriverManager;public class MConnection {
public static Connection getConn() {
String URL = "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8";
String user = "root";
String password = "mysql";
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("ready!"); connection = DriverManager.getConnection(URL, user, password);
System.out.println("OK!"); } catch (Exception err) {
err.printStackTrace();
return null;
} return connection;
}}