Java を使用して MySQL データベースに接続しようとすると、例外が発生する場合があります: _Public Key Retrieval is not許可された_。この問題は、MySQL コネクタの使用時に実装されたセキュリティ対策が原因で発生します。
この問題に対処するには、MySQL 接続文字列に次のオプションを追加して公開キーの取得を有効にする必要があります:
allowPublicKeyRetrieval=true
このオプションを使用すると、クライアントがサーバーから公開キーを自動的に要求できるようになり、「公開キーの取得は許可されていません」という例外が解決されます。ただし、公開キーの取得を有効にすると、悪意のあるプロキシがパスワードを取得できる可能性があることに注意することが重要です。したがって、このオプションはテストまたは開発の目的でのみ使用することをお勧めします。
allowPublicKeyRetrieval オプションを含めると、接続文字列は次のようになります。
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false
さらに、テスト/開発の目的で、useSSL=false を設定して SSL 暗号化を無効にすることもできます。
<code class="java">import com.mysql.cj.jdbc.MysqlDataSource; ... MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setUseSSL(false); ...</code>
これらの調整を接続に実装することで、文字列を変更し、テストのために SSL を無効にすると、「公開キーの取得は許可されていません」という例外を克服して、MySQL データベースに正常に接続できます。
以上がMySQL データベースに接続すると「公開キーの取得は許可されていません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。