source

java.sql.SQLException:알 수 없는 시스템 변수 'query_cache_size'

nicesource 2023. 3. 10. 22:07
반응형

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 버전입니다.

query_cache_sizeMySQL 8에서 제거되었습니다. 문서를 확인하십시오.

JDBC 드라이버 5.1.44에서 동작합니다.

java.sql.SQLException:알 수 없는 시스템 변수 'query_cache_size'

프로젝트의 pom 파일에서 종속성 버전을 업데이트합니다.

예를 들어 mysql java connector의 6.0.2를 8.0.11과 같은 최신 버전으로 업데이트하면 됩니다.

됐다!!!!

저도 비슷한 문제가 있었어요.mysql 의존관계에 버전을 지정하여 해결했습니다.

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

나한테는 마법처럼 작용했어.

MySQL 8.0.3을 사용해 보십시오. 문서에서 볼 수 있듯이 MySQL8에서 query_cache_size가 제거되었습니다.JetBrains에서도 같은 문제가 발생하고 있습니다만, 드라이버를 MySQL JDBC 버전 5.1.44로 업데이트하면 문제가 해결된 것 같습니다.

mysql 8의 경우:

mysql-driver-8.0.17.jar(또는 그 이상) + db.driver=com.driver.jdbc 。com.mysql.jdbc가 아닌 드라이버.드라이버

나는 이 문제에 매달렸고, 하루를 꼬박 보냈고, 마침내 해결책을 찾았다.

해결책:

1) mysql 버전으로 정확한 mysql-connector-java jar 또는 의존관계를 사용합니다.
2) mysql 버전이 8 또는 6+일 경우 이 "com.sysql.jdbc"를 사용해 보십시오.드라이버 클래스.

MySql v8.0을 사용하는 경우 다음 명령을 사용하여 이 오류를 수정하십시오.

mysql-sysql-sysql-5.1.9

이 예외는 pom.xml 의존관계와 관련되어 있습니다. pox.xml에서 다음 의존관계를 사용하는 경우:

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>6.0.5</version>
 </dependency>

예외가 표시됩니다.원인: java.sql.SQLException:알 수 없는 시스템 변수 query_cache_size

단, 다음과 같은 종속성을 사용할 경우:

  <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
  </dependency>

그건 효과가 있다.최신 종속성을 사용해야 합니다.

그래, 내가 위에서 말한 대로 했어.mysql-connector-java-5.1.4를 빌드 패스에 추가하고 서버에서 프로젝트를 실행한 후 mysql에 정상적으로 연결했습니다.

mysql 버전을 변경하면 pom.xml에서 사용합니다.

<version>8.0.11</version>

아래 언급의 의존성을 활용하면 도움이 됩니다.

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.16</version>
    </dependency>

언급URL : https://stackoverflow.com/questions/49984267/java-sql-sqlexception-unknown-system-variable-query-cache-size

반응형