Java-приложению не удается подключиться к mysql как пользователь без полномочий root в debian - PullRequest
1 голос
/ 05 июня 2011

Пожалуйста, обратитесь к Исключение Stumped SQL для JDBC

У меня похожая ошибка (приведенная ниже) при запуске от имени пользователя root, не являющегося пользователем root.Но эта ошибка не возникает, если приложение java запускается как пользователь root в debian.

Приложение настроено для подключения к mysql от имени пользователя root.

Я перезагрузил систему после добавленияследующие записи в my.cnf, как указано в указанном вопросе.Но возникает та же ошибка.

character_set_server=utf8
collation_server=utf8_general_ci

Пожалуйста, помогите.

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
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
   at com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1751)
   at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3425)
   at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2045)
   at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718)
   at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298)
   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
   at java.sql.DriverManager.getConnection(libgcj.so.10)
   at java.sql.DriverManager.getConnection(libgcj.so.10)
   at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:65)
   at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
   at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
   at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
   at edu.amrita.jdbc.connectionpool.bundle.DBConnectionPoolImpl.getConnection(DBConnectionPoolImpl.java:95)
   at edu.amrita.devicetalk.protocol.aesccmp.DatabaseInterface.getRegisteredDevices(DatabaseInterface.java:116)

1 Ответ

0 голосов
/ 05 июня 2011

Убедитесь, что не-root использует Oracle Java (sun-java6-jdk и sun-java6-jre из пакетов non-free), используя команду update-alternatives (как root):

# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                  Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gij-4.4                       1044      auto mode
  1            /usr/bin/gij-4.4                       1044      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java   63        manual mode

Press enter to keep the current choice[*], or type selection number: 

Выберите подходящий номер (здесь 2).После этого должно быть:

$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...