【发布时间】:2011-09-08 16:55:18
【问题描述】:
请参考Stumped SQL Exception for JDBC
以非 root debian 用户身份运行时,我遇到了类似的错误(如下所列)。但是如果 java 应用程序在 debian 中以 root 用户身份运行,则不会出现此错误。
应用程序被配置为以 root 用户身份连接到 mysql。
我在 my.cnf 中添加了以下条目后重新启动了系统,正如所提到的问题中所建议的那样。但是会出现同样的错误。
character_set_server=utf8 collation_server=utf8_general_ci请帮忙。
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '????????????????' 附近使用正确的语法在第 1 行 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) 在 com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1751) 在 com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3425) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2045) 在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718) 在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) 在 java.sql.DriverManager.getConnection(libgcj.so.10) 在 java.sql.DriverManager.getConnection(libgcj.so.10) 在 org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:65) 在 org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) 在 org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840) 在 org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) 在 edu.amrita.jdbc.connectionpool.bundle.DBConnectionPoolImpl.getConnection(DBConnectionPoolImpl.java:95) 在 edu.amrita.devicetalk.protocol.aesccmp.DatabaseInterface.getRegisteredDevices(DatabaseInterface.java:116)【问题讨论】:
-
您作为 root/非 root 用户使用哪个 Java 发行版?尝试使用 sun-java6-jdk 包(非免费)。
-
感谢您指出这一点。我在 root 中使用 sun-java6-jre。但它不适用于非 root 用户。它仍然使用 debian 默认提供的 java 我试过这个: 作为 root 用户,在 etc/profile.d 目录中创建了一个 java.sh 文件,内容为 export JAVA_HOME=/usr/java/jdk1.6.0_05/jre export PATH=$JAVA_HOME/bin:${PATH} 但这不起作用。你能帮我把 sun-java6 提供给非 root 用户吗?