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 версия
12 ответов
query_cache_size
был удален в MySQL 8. Проверьте документы.
Работает с драйвером JDBC 5.1.44.
java.sql.SQLException: неизвестная системная переменная 'query_cache_size'
В pom-файле вашего проекта просто обновите версию зависимости.
Например, это 6.0.2 из mysql Java-коннектора, просто обновите его до последнего, такого как 8.0.11
Оно работает!!!!
У меня была похожая проблема. Я решил это, указав версию в зависимости MySQL
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
<scope>runtime</scope>
</dependency>
Работал как шарм для меня.
Для mysql 8:
mysql-connector-java-8.0.17.jar (или выше) + db.driver=com.mysql.cj.jdbc.Driver вместо com.mysql.jdbc.Driver
Попробуйте использовать MySQL 8.0.3. Как видно из документации, query_cache_size был удален в MySQL8. Ребята из JetBrains столкнулись с той же проблемой, похоже, она была исправлена путем обновления драйвера до версии драйвера MySQL JDBC v 5.1.44.
Я застрял в этом вопросе, провел целый день, и, наконец, я получил решение.
Решение:
1) В качестве версии mysql используйте точный javar-файл mysql-connector-jav или зависимость.
2) если ваша версия mysql 8 или 6+, попробуйте использовать этот класс драйвера "com.mysql.cj.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>
Это работает.Вы должны использовать последнюю зависимость
Если вы используете MySql v8.0, попробуйте исправить эту ошибку с помощью
MySQL-разъем-Java-5.1.9
Итак, что я сделал, как сказано выше. Я просто добавил mysql-connector-java-5.1.4 для создания пути и запустил проект на моем сервере и нормально подключился к mysql
Просто измените версию mysql, используйте это в pom.xml
<version>8.0.11</version>
Ответ лежит в первой строке вашей ошибки прямо здесь:
java.sql.SQLException: Unknown system variable 'query_cache_size'
Прежде всего, убедитесь, что он включен для начала. Это может быть отключено.
Убедитесь, что "query_cache_size" существует в вашей версии MySQL, которую вы используете. Определенные имена переменных также изменились от версии к версии mysql
Использование Ниже упомяните зависимость, это сработает для вас!
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>