Rumah > Artikel > pangkalan data > Bagaimana untuk Menyelesaikan Pengecualian \"Pengambilan Kunci Awam tidak dibenarkan\" Apabila Menyambungkan Java ke MySQL?
Sambungan Java - MySQL: Menyelesaikan "Public Key Retrieval is not allowed" Exception
Apabila cuba mewujudkan sambungan ke pangkalan data MySQL menggunakan Java dan penyambung 8.0.11, pengguna mungkin menghadapi pengecualian berikut:
<code class="java">Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
Penyelesaian:
Pengecualian ini menunjukkan bahawa pelanggan sedang cuba mendapatkan semula orang ramai kunci daripada pelayan, tetapi pengambilan kunci awam tidak dibenarkan. Untuk menyelesaikan isu ini, kami perlu membenarkan pengambilan kunci awam secara eksplisit dengan menambahkan pilihan allowPublicKeyRetrieval=true pada rentetan sambungan MySQL.
Kelas Pengurus Sambungan Terubah Suai:
<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>Dengan menetapkan allowPublicKeyRetrieval kepada benar, pelanggan diberi kuasa untuk meminta kunci awam daripada pelayan. Ini menyelesaikan pengecualian "Pengambilan Kunci Awam tidak dibenarkan".
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Pengecualian \"Pengambilan Kunci Awam tidak dibenarkan\" Apabila Menyambungkan Java ke MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!