gpt4 book ai didi

Java 应用程序无法在 debian 中以非 root 用户身份连接到 mysql

转载 作者:行者123 更新时间:2023-11-30 23:37:36 24 4
gpt4 key购买 nike

请引用Stumped SQL Exception for JDBC

当以非 root debian 用户身份运行时,我遇到了类似的错误(如下所列)。但是如果java应用程序在debian中以root用户运行就不会出现这个错误。

应用程序配置为以根用户身份连接到 mysql。

我按照所提到的问题中的建议在 my.cnf 中添加了以下条目后重新启动了系统。但是出现同样的错误。

character_set_server=utf8collation_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)

最佳答案

确保非 root 使用 Oracle Java(sun-java6-jdksun-java6-jre 来自非自由的包)使用 update-alternatives命令(作为根):

# 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)

关于Java 应用程序无法在 debian 中以非 root 用户身份连接到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com