java.sql.SQLException:未知的系统变量'query_cache_size'

时间:2018-04-23 15:04:07

标签: java mysql spring-boot jdbc

我有一个运行JDBC的应用程序并从MySQL获取数据,但由于此错误我无法构建它:

java.sql.SQLException: Unknown system variable 'query_cache_size'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2497) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2455) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1369) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3777) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3240) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2249) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2035) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[mysql-connector-java-5.1.41.jar:5.1.41]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_131]

我在这里有文件application.properties

#specs.dir=/specs/
#
#################### Spring Boot Data Source Configuration ############
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/savingbooking?useSSL=false
#spring.datasource.username=root
#spring.datasource.password=ZAQ!2wsx
#spring.datasource.initialize=true
#spring.jpa.hibernate.ddl-auto=update
#spring.jpa.properties.hibernate.format_sql=true
#spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect

Mysql workbench是8.0版本

10 个答案:

答案 0 :(得分:36)

在MySQL中删除了

Employees 8。检查docs

适用于JDBC驱动程序5.1.44。

答案 1 :(得分:17)

  

java.sql.SQLException:未知的系统变量'query_cache_size'

在项目的pom文件中,只需更新依赖项的版本即可。

例如,它是mysql java Connector的6.0.2,只需将其更新为最新的8.0.11

有效!!!!

答案 2 :(得分:6)

尝试使用MySQL 8.0.3 从文档中可以看出,在MySQL8上删除了query_cache_size。 JetBrains的家伙也遇到了同样的问题,似乎是通过将驱动程序更新为MySQL JDBC驱动程序v 5.1.44来修复它。

答案 3 :(得分:6)

我有类似的问题。 我通过在mysql依赖项中指定版本来解决该问题

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.45</version>
    <scope>runtime</scope>
</dependency>

对我来说就像是一种魅力。

答案 4 :(得分:2)

此异常与pom.xml依赖性有关。 当我在pox.xml中使用以下依赖项时:

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>6.0.5</version>
 </dependency>

它显示异常:由以下原因引起:java.sql.SQLException:未知的系统变量query_cache_size

但是,当我使用以下依赖项时:

  <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
  </dependency>

有效。您必须使用最新的依赖项

答案 5 :(得分:1)

如果您使用MySql v8.0,则应尝试使用

修复此错误。
  

mysql-connector-java-5.1.9

答案 6 :(得分:1)

对于mysql 8:

mysql-connector-java-8.0.17.jar(或更高版本) + db.driver = com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver

答案 7 :(得分:0)

我坚持这个问题,花了整整一天的时间,终于找到了解决办法。

解决方案:

  

1)使用确切的mysql-connector-java jar或依赖项作为您的mysql版本。
  2)如果您的mysql版本是8或6+,请尝试使用此“ com.mysql.cj.jdbc.Driver”驱动程序类。

答案 8 :(得分:0)

好吧,我按照上面提到的做了。我刚刚添加了mysql-connector-java-5.1.4来构建路径并在服务器上运行该项目,并很好地连接到mysql

答案 9 :(得分:0)

只需更改mysql的版本 在pom.xml中使用它

<version>8.0.11</version>