연결 Java - MySQL: "공개 키 검색이 허용되지 않음" 예외 해결
다음을 사용하여 MySQL 데이터베이스에 연결을 설정하려고 할 때 Java 및 8.0.11 커넥터의 경우 사용자에게 다음 예외가 발생할 수 있습니다.
<code class="java">Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
해결 방법:
이 예외는 클라이언트가 공용 커넥터를 검색하려고 시도하고 있음을 나타냅니다. 키를 서버에서 가져오지만 공개 키 검색은 허용되지 않습니다. 이 문제를 해결하려면 MySQL 연결 문자열에allowPublicKeyRetrieval=true 옵션을 추가하여 공개 키 검색을 명시적으로 허용해야 합니다.
수정된 연결 관리자 클래스:
<code class="java">public static Connection getConnection() throws SQLException { MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setUseSSL( false ); dataSource.setServerTimezone( serverTimeZone ); dataSource.setServerName( serverName ); dataSource.setDatabaseName( databaseName ); dataSource.setPortNumber( portNumber ); dataSource.setUser( user ); dataSource.setPassword( password ); // Allow public key retrieval dataSource.setAllowPublicKeyRetrieval( true ); return dataSource.getConnection(); }</code>
allowPublicKeyRetrieval을 true로 설정하면 클라이언트가 서버에 공개 키를 요청할 수 있는 권한이 부여됩니다. 이렇게 하면 "공개 키 검색이 허용되지 않습니다" 예외가 해결됩니다.
추가 고려 사항:
위 내용은 Java를 MySQL에 연결할 때 \'공개 키 검색이 허용되지 않습니다\' 예외를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!