数据库
首页 > 数据库> > java – JDBC的Stumped SQL异常

java – JDBC的Stumped SQL异常

作者:互联网

我正在尽我所能让JDBC工作,现在唯一困扰我的是这个例外,我不知道:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
    com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1890)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3523)
    com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2386)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:374)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    java.sql.DriverManager.getConnection(libgcj.so.10)
    java.sql.DriverManager.getConnection(libgcj.so.10)

我正在用它连接…

Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "username", "password");

非常感谢!

解决方法:

这些是相关部分:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the 
right syntax to use near '????????????????' at line 1
    ...
    com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1890)
    ...
    java.sql.DriverManager.getConnection(libgcj.so.10)

这些问号表示在查询期间配置客户端字符集时出现严重的字符编码问题.

首次尝试时,打开my.cnf文件并确保存在以下两个条目:

character_set_server=utf8
collation_server=utf8_general_ci

作为第二次尝试,将07J或Oracle (Sun) JDK替换为GCJ,这更加强大.众所周知,GCJ有其奇特之处.

标签:mysql-error-1064,java,mysql,jdbc,connector
来源: https://codeday.me/bug/20190925/1816939.html