前几天刚重新装了下系统,今天把环境全配齐了。发现无法连接MYSQL,情况是这样的。
我的MYSQL是FC6 LINUX 自带的,在命令行下可以用。但是我用EMS MYSQL MANAGER前端连会这样报错:can't connect to local mysql server through scoket'/temp/mysql.sock'(2)
之后我用JAVA写了个测试类
package test;import java.sql.*;public class Test {
public static void main(String arfs[]){
String dir = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1/test";
ResultSet rs = null;
Statement st = null;
try{
Class.forName(dir);
Connection conn = DriverManager.getConnection(url,"root","*****");
System.out.print("connetion");
st = conn.createStatement();
rs = st.executeQuery("insert into van values('wwbb','wwbb')");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}
}}
会有这样的报错:
java.sql.SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: nullNested Stack Trace:
** BEGIN NESTED EXCEPTION ** java.io.CharConversionExceptionSTACKTRACE:java.io.CharConversionException
at gnu.gcj.convert.Input_iconv.read(libgcj.so.7rh)
at java.lang.String.init(libgcj.so.7rh)
at java.lang.String.<init>(libgcj.so.7rh)
at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:153)
at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108)
at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:600)
at com.mysql.jdbc.ByteArrayBuffer.writeStringNoNull(ByteArrayBuffer.java:544)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1660)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3020)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2343)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3748)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2585)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at test.Test.main(Test.java:14)
** END NESTED EXCEPTION **
at com.mysql.jdbc.Connection.execSQL(Connection.java:3073)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2343)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3748)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2585)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at test.Test.main(Test.java:14)
不是驱动的问题,我用了好几种驱动。
有谁知道是什么原因的吗?
我的MYSQL是FC6 LINUX 自带的,在命令行下可以用。但是我用EMS MYSQL MANAGER前端连会这样报错:can't connect to local mysql server through scoket'/temp/mysql.sock'(2)
之后我用JAVA写了个测试类
package test;import java.sql.*;public class Test {
public static void main(String arfs[]){
String dir = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1/test";
ResultSet rs = null;
Statement st = null;
try{
Class.forName(dir);
Connection conn = DriverManager.getConnection(url,"root","*****");
System.out.print("connetion");
st = conn.createStatement();
rs = st.executeQuery("insert into van values('wwbb','wwbb')");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}
}}
会有这样的报错:
java.sql.SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: nullNested Stack Trace:
** BEGIN NESTED EXCEPTION ** java.io.CharConversionExceptionSTACKTRACE:java.io.CharConversionException
at gnu.gcj.convert.Input_iconv.read(libgcj.so.7rh)
at java.lang.String.init(libgcj.so.7rh)
at java.lang.String.<init>(libgcj.so.7rh)
at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:153)
at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108)
at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:600)
at com.mysql.jdbc.ByteArrayBuffer.writeStringNoNull(ByteArrayBuffer.java:544)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1660)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3020)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2343)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3748)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2585)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at test.Test.main(Test.java:14)
** END NESTED EXCEPTION **
at com.mysql.jdbc.Connection.execSQL(Connection.java:3073)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2343)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3748)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2585)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at java.sql.DriverManager.getConnection(libgcj.so.7rh)
at test.Test.main(Test.java:14)
不是驱动的问题,我用了好几种驱动。
有谁知道是什么原因的吗?
}catch(SQLException e){
啊
不知道这样对不对啊
GRANT ALL ON * TO [email protected] IDENTIFIED BY "test"
catch 先catch子类,在catch父类.
根据这个消息,初步判断是字符转换方面的异常!