Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyelesaikan Pengecualian \"Pengambilan Kunci Awam tidak dibenarkan\" Apabila Menyambungkan Java ke MySQL?

Bagaimana untuk Menyelesaikan Pengecualian \"Pengambilan Kunci Awam tidak dibenarkan\" Apabila Menyambungkan Java ke MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 05:53:30338semak imbas

How to Resolve the

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:

  • Mendayakan pengambilan kunci awam mungkin mendedahkan risiko keselamatan. Pertimbangkan untuk melumpuhkannya selepas ujian atau pembangunan.
  • Sebagai alternatif, tetapkan useSSL=false untuk tujuan pembangunan sahaja. Jangan gunakan ini dalam persekitaran pengeluaran kerana ia melumpuhkan penyulitan SSL.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn