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

Где код, вызывающий ошибку?

xoxel 23.04.2018 17:06

MySQL Workbench - это инструмент запросов для MySQL, он не задействован при доступе к базе данных MySQL из Java, поэтому не имеет отношения к вашему вопросу.

Mark Rotteveel 23.04.2018 17:07

Похоже, это известная ошибка bugs.mysql.com/bug.php?id=87846 Попробуйте обновить jar-файл коннектора mysql-connector-java до версии 5.1.43 или выше.

RubioRic 23.04.2018 17:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
33
3
55 689
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

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

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

Я использую mysql-connector-java версии 6.0.3, добавляя зависимость от maven в свой проект. и все же я получаю ту же ошибку

Dhaval Bhoot 15.05.2018 07:08

@ steven35 Я получаю $ sudo mysql_upgrade -u rootLooking for 'mysql' as: mysqlLooking for 'mysqlcheck' as: mysqlcheckError: Failed while fetching Server version! Could be due to unauthorized access.FATAL ERROR: Upgrade failed Пожалуйста, помогите

Vinay Chittora 10.08.2018 11:43

@DhavalBhoot вы можете использовать любой более поздний соединитель SQL. Я использовал <version> 8.0.12 </version>, и он работал без проблем.

Sachin Poreyana 12.10.2018 11:14

Последняя версия на октябрь 2018 г. - 8.0.13.

lapkritinis 31.10.2018 13:22

По-прежнему появляется та же ошибка «Неизвестная системная переменная 'query_cache_size'» с последней версией mysql: mysql-connector-java: 8.0.25 в приложении загрузки java spring.

Rajesh M 05.06.2021 09:22

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

Обновление версии драйвера до 5.1.44 устранило проблему для меня. Спасибо!

Leonya 08.11.2018 17:35

java.sql.SQLException: Unknown system variable 'query_cache_size'

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

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

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

Обновление версии драйвера до 5.1.44 устранило проблему для меня. Я сохраняю версию драйвера 5, потому что мне все еще нужно иметь возможность подключаться к mySQL v5 на некоторых серверах, но теперь я могу подключиться к обоим.

Leonya 08.11.2018 17:36

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

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

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

Я исправил это на основе @ steven35, и это сработало, но, спасибо за вашу помощь !!!

Kiên Trần Trung 13.11.2018 04:01

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

mysql-connector-java-5.1.9

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

Решение :

1) Use exact mysql-connector-java jar or dependency as your mysql version.
2) if your mysql version is 8 or 6+ try to use this "com.mysql.cj.jdbc.Driver" driver class.

Итак, что я сделал, как упоминалось выше. Я просто добавил mysql-connector-java-5.1.4 для создания пути и запустил проект на моем сервере и нормально подключился к mysql

просто измените версию mysql используйте это в pom.xml

<version>8.0.11</version>

Для mysql 8:

mysql-connector-java-8.0.17.jar (или выше) + db.driver = com.mysql.cj.jdbc.Driver вместо com.mysql.jdbc.Driver

Это исключение связано с зависимостью 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>

Это работает.Вы должны использовать последнюю зависимость

Другие вопросы по теме