首页 > 解决方案 > MySQLSyntaxErrorException 'OPTION SQL_SELECT_LIMIT=DEFAULT'

问题描述

使用 mysql-connector-java-5.1.44-bin.jar 和 mysql version = 5.7.23 使用 Spring Boot,应用程序启动时调度程序会抛出此错误

o.s.scheduling.quartz.LocalDataSourceJobStore - Failed to override connection auto commit/transaction isolation.
    com.mysql.jdbc.exceptions.jdbc4.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=DEFAULT' at line 1
            at sun.reflect.GeneratedConstructorAccessor174.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
            at com.mysql.jdbc.Util.getInstance(Util.java:384)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2690)
            at com.mysql.jdbc.StatementImpl.executeSimpleNonQuery(StatementImpl.java:1545)
            at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1447)
            at com.mysql.jdbc.ConnectionImpl.getTransactionIsolation(ConnectionImpl.java:3262)
            at com.zaxxer.hikari.pool.HikariProxyConnection.getTransactionIsolation(HikariProxyConnection.java)
            at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.setTransactionIsolation(AttributeRestoringConnectionInvocationHandler.java:108)
            at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:68)

标签: mysqlspring-bootquartz-schedulermysql-connector

解决方案


根据上面的评论,问题原来是旧版本的 MySQL Connector/J 意外出现。Java CLASSPATH 首先找到旧版本。

支持我关于 Java 的长期规则

在此处输入图像描述


推荐阅读