Rumah > pangkalan data > tutorial mysql > 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
Lepaskan: 2024-10-31 05:53:30
asal
437 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan