Ralat: Ketidakserasian Antara Pelanggan MySQL dan Protokol Pengesahan Pelayan
Apabila membuat sambungan ke pangkalan data MySQL, anda mungkin menghadapi ralat berikut: "Pelanggan tidak menyokong protokol pengesahan yang diminta oleh pelayan; pertimbangkan untuk menaik taraf klien MySQL." Ralat ini timbul disebabkan oleh ketidakserasian antara protokol pengesahan yang disokong oleh klien MySQL anda dan yang diperlukan oleh pelayan.
Penyiasatan dan Penyelesaian
Percubaan awal anda untuk menyelesaikan isu dengan memberikan keistimewaan dan mengemas kini kata laluan tidak berjaya. Ralat yang anda terima ("ERROR 1064") menunjukkan ralat sintaks dalam pernyataan SQL anda. Pernyataan SQL yang anda gunakan, yang termasuk "DIENTIFIED BY 'mypassword'", tidak serasi dengan MySQL 8.0 atau lebih baru.
Penyelesaian
Punca punca ketidakpadanan protokol pengesahan ialah anda menggunakan versi pustaka MySQL Connector/J yang sudah lapuk. MySQL 8 memperkenalkan mekanisme pengesahan baharu yang dipanggil caching_sha2_password, yang tidak disokong dalam MySQL Connector/J 5.1.45 atau lebih awal.
Untuk menyelesaikan isu ini, anda perlu meningkatkan kepada MySQL Connector/J 5.1.46 atau lebih tinggi . Versi terkini perpustakaan pada masa penulisan ialah 8.0.15. Anda boleh memuat turun versi terkini daripada tapak web MySQL (https://dev.mysql.com/downloads/connector/j/) atau nyatakan versi yang dikehendaki dalam sistem pengurusan pergantungan projek anda (cth., Maven atau Gradle).
Setelah anda menaik taraf pustaka MySQL Connector/J, anda sepatutnya dapat mewujudkan sambungan yang berjaya ke pelayan MySQL tanpa menghadapi ralat protokol pengesahan.
Atas ialah kandungan terperinci Mengapa Klien MySQL Saya Gagal Menyambung dan Bagaimana Saya Boleh Membetulkan Ralat 'Klien tidak menyokong protokol pengesahan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!