连接 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 连接字符串中添加 allowedPublicKeyRetrieval=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中文网其他相关文章!