it-roy-ru.com

java.sql.SQLException: неизвестная системная переменная 'query_cache_size'

У меня есть приложение, работающее с 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 верстак 8.0 версия

16
Kiên Trần Trung

query_cache_size был удален в MySQL 8. Проверьте docs .

Работает с драйвером JDBC 5.1.44.

31
steven35

Java.sql.SQLException: неизвестная системная переменная 'query_cache_size'

В pom-файле вашего проекта просто обновите версию зависимости.

Например, это 6.0.2 mysql Java-коннектора, просто обновите его до последней версии, такой как 8.0.11

Оно работает!!!!

14
vineeth sharma

Попробуйте использовать MySQL 8.0.3 Как видно из документации, query_cache_size был удален в MySQL8. Ребята из JetBrains столкнулись с той же проблемой, похоже, она была исправлена ​​путем обновления драйвера до версии драйвера MySQL JDBC v 5.1.44.

6
ISHAN KUMAR GHOSH

У меня была похожая проблема . Я решил ее с помощью указав версию в зависимости MySQL

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

Работал как шарм для меня.

3
Asad Shakeel

Если вы используете MySql v8.0, попробуйте исправить эту ошибку с помощью 

mySQL-разъем-Java-5.1.9

1
Đặng Ngọc Phong

Я застрял в этом вопросе, провел целый день, и, наконец, я получил решение.

Решение : 

1) В качестве версии mysql используйте точный jar-файл mysql-connector-Java или зависимость.
2) если ваша версия mysql 8 или 6+, попробуйте использовать этот класс драйвера "com.mysql.cj.jdbc.Driver".

0
Mukesh Kumar yadav