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バージョンです
query_cache_size
はMySQL 8で削除されました。 docs を確認してください。
JDBCドライバー5.1.44で動作します。
Java.sql.SQLException:不明なシステム変数 'query_cache_size'
プロジェクトのpomファイルで、依存関係のバージョンを更新するだけです。
たとえば、mysql Javaコネクタの6.0.2は、8.0.11のような最新のものに更新するだけです。
できます!!!!
MySQL 8.0.3を使用してみてください。ドキュメントでわかるように、query_cache_sizeはMySQL8で削除されました。 JetBrainsの人たちも同じ問題に苦しんでいますが、ドライバーをバージョンMySQL JDBCドライバーv 5.1.44に更新することで修正されたようです。
同様の問題がありました。 mysql依存関係でバージョンを指定で解決しました
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-Java</artifactId>
<version>5.1.45</version>
<scope>runtime</scope>
</dependency>
私にとって魅力のように働いた。
MySql v8.0を使用している場合は、このバグを次のように修正してください。
mysql-connector-Java-5.1.9
わかりましたので、上記のように私がやったこと。 mysql-connector-Java-5.1.4を追加してパスをビルドし、サーバー上でプロジェクトを実行し、mysqlに正常に接続しました。
私はこの問題にこだわって、1日いっぱい過ごして、ようやく解決策を得ました。
解決 :
1)mysqlバージョンとして正確なmysql-connector-Java jarまたは依存関係を使用します。
2)mysqlのバージョンが8または6+の場合、この「com.mysql.cj.jdbc.Driver」ドライバークラスを使用してみてください。
mysqlのバージョンを変更するだけで、pom.xmlでこれを使用します
<version>8.0.11</version>