web-dev-qa-db-fra.com

java.sql.SQLException: variable système inconnue 'query_cache_size'

J'ai une application fonctionnant avec JDBC et obtenant des données de MySQL, mais je ne peux pas la construire à cause de cette erreur: 

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]

J'ai le fichier application.properties ici 

#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 est la version 8.0

16
Kiên Trần Trung

query_cache_size a été supprimé de MySQL 8. Vérifiez les docs .

Cela fonctionne avec le pilote JDBC 5.1.44.

31
steven35

Java.sql.SQLException: Variable système inconnue 'query_cache_size'

Dans le fichier pom de votre projet, il suffit de mettre à jour la version de la dépendance.

Par exemple, il s'agit de la version 6.0.2 du connecteur Java mysql, il suffit de la mettre à jour, comme 8.0.11

Ça marche!!!!

14
vineeth sharma

Essayez d’utiliser MySQL 8.0.3 Comme on peut le voir sur la documentation, le query_cache_size a été supprimé de MySQL8. Les gars de JetBrains ont subi le même problème, il semble être résolu en mettant à jour le pilote avec la version MySQL JDBC driver v 5.1.44.

6
ISHAN KUMAR GHOSH

J'ai eu un problème similaire ..__ Je l'ai résolu en en spécifiant la version dans la dépendance mysql

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

A fonctionné à merveille pour moi.

3
Asad Shakeel

Si vous utilisez MySql v8.0, essayez de corriger ce bogue avec 

mysql-connector-Java-5.1.9

1

Je suis resté sur cette question, j'ai passé toute la journée et enfin j'ai trouvé une solution.

Solution : 

1) Utilisez le jar ou la dépendance exacte mysql-connector-Java comme version de votre mysql.
2) si votre version de MySQL est la version 8 ou 6+, essayez d’utiliser cette classe de pilotes "com.mysql.cj.jdbc.Driver".

0
Mukesh Kumar yadav