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
query_cache_size
wurde in MySQL entfernt 8. Überprüfen Sie die docs .
Es funktioniert mit dem JDBC-Treiber 5.1.44.
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!!!!
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.
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.
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
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.
ändere einfach die Version von mysql und verwende dies in pom.xml
<version>8.0.11</version>