我使用mysql服务器5.6.19和mysql-connector-Java-5.0.8。我有以下错误。
ERROR {xxxxxxx} - Error while retrieving roles from Internal JDBC role store
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 'OPTION SQL_SELECT_LIMIT=100' at line 1
这是mysql服务器兼容性错误吗??
有谁能找出这是什么原因吗?
最佳答案
问题是 - 可能 - JDBC 驱动程序正在使用旧的 SET OPTION <option-name> ...
语法,自 MySQL 5.0(可能更早)以来已被弃用。参见 SET
in the MySQL 5.0 documentation的评论:
Older versions of MySQL employed
SET OPTION
, but this syntax is deprecated in favor ofSET
withoutOPTION
.
MySQL 5.6仅支持 SET <option-name> ...
.
您的 JDBC 驱动程序确实很旧。请参阅http://bugs.mysql.com/bug.php?id=66659 :您需要将 Connector/J 库升级到一个更新的版本(例如最新的:5.1.32:http://dev.mysql.com/downloads/connector/j/)。
这是假设您的代码不执行任何 SET OPTION ...
命令自己。否则,您将需要修复代码以使用更新的语法。
关于java - 服务器启动错误 - SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442120/