webentwicklung-frage-antwort-db.com.de

java.sql.SQLException: Unbekannte Systemvariable 'query_cache_size'

Ich habe eine App mit JDBC und erhalte Daten von MySQL. Ich kann sie jedoch aufgrund dieses Fehlers nicht erstellen: 

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]

Ich habe hier die Datei 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 ist Version 8.0

16

query_cache_size wurde in MySQL entfernt 8. Überprüfen Sie die docs .

Es funktioniert mit dem JDBC-Treiber 5.1.44.

31
steven35

Java.sql.SQLException: Unbekannte Systemvariable 'query_cache_size'

Aktualisieren Sie in der POM-Datei Ihres Projekts einfach die Version der Abhängigkeit.

Zum Beispiel ist es 6.0.2 von mysql Java Connector. Aktualisieren Sie ihn auf den neuesten Stand wie 8.0.11

Es klappt!!!!

14
vineeth sharma

Versuchen Sie es mit MySQL 8.0.3 Da in den Dokumenten bereits zu sehen ist, wurde query_cache_size unter MySQL8 entfernt. JetBrains-Jungs haben das gleiche Problem erlebt, es scheint, dass der Treiber auf die Version MySQL JDBC-Treiber v 5.1.44 aktualisiert wurde.

6

Ich hatte ein ähnliches Problem ... Ich habe es gelöst, indem Sie Angabe der Version in der MySQL-Abhängigkeit

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

Arbeitete wie ein Zauber für mich.

3
Asad Shakeel

Wenn Sie MySql v8.0 verwenden, sollten Sie versuchen, diesen Fehler zu beheben 

mySQL-Connector-Java-5.1.9

Ok also was hab ich gemacht wie oben erwähnt. Ich habe gerade den mysql-connector-Java-5.1.4 hinzugefügt, um den Pfad zu erstellen, das Projekt auf meinem Server ausgeführt und eine Verbindung zu mysql hergestellt

0
Ooguro

Ich blieb bei diesem Problem, verbrachte einen ganzen Tag und endlich bekam ich eine Lösung.

Lösung: 

1) Verwenden Sie als Mysql-Version eine exakte mysql-connector-Java-JAR oder -Abhängigkeit.
2) Wenn Ihre MySQL-Version 8 oder 6+ ist, versuchen Sie, diese Treiberklasse "com.mysql.cj.jdbc.Driver" zu verwenden.

0

ändere einfach die Version von mysql und verwende dies in pom.xml

<version>8.0.11</version>
0
Shubham