web-dev-qa-db-ja.com

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バージョンです

22

query_cache_sizeはMySQL 8で削除されました。 docs を確認してください。

JDBCドライバー5.1.44で動作します。

40
steven35

Java.sql.SQLException:不明なシステム変数 'query_cache_size'

プロジェクトのpomファイルで、依存関係のバージョンを更新するだけです。

たとえば、mysql Javaコネクタの6.0.2は、8.0.11のような最新のものに更新するだけです。

できます!!!!

20
vineeth sharma

MySQL 8.0.3を使用してみてください。ドキュメントでわかるように、query_cache_sizeはMySQL8で削除されました。 JetBrainsの人たちも同じ問題に苦しんでいますが、ドライバーをバージョンMySQL JDBCドライバーv 5.1.44に更新することで修正されたようです。

7

同様の問題がありました。 mysql依存関係でバージョンを指定で解決しました

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

私にとって魅力のように働いた。

6
Asad Shakeel

MySql v8.0を使用している場合は、このバグを次のように修正してください。

mysql-connector-Java-5.1.9

わかりましたので、上記のように私がやったこと。 mysql-connector-Java-5.1.4を追加してパスをビルドし、サーバー上でプロジェクトを実行し、mysqlに正常に接続しました。

0
Ooguro

私はこの問題にこだわって、1日いっぱい過ごして、ようやく解決策を得ました。

解決 :

1)mysqlバージョンとして正確なmysql-connector-Java jarまたは依存関係を使用します。
2)mysqlのバージョンが8または6+の場合、この「com.mysql.cj.jdbc.Driver」ドライバークラスを使用してみてください。

0

mysqlのバージョンを変更するだけで、pom.xmlでこれを使用します

<version>8.0.11</version>
0
Shubham