Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Sambungan PHP PDO Saya Gagal dengan 'Set Aksara Tidak Diketahui (255)' daripada MySQL 8?
Ralat PDO: Set Aksara Tidak Diketahui (255) daripada Pelayan MySQL
Apabila menyambung ke pangkalan data MySQL, pembangun mungkin menghadapi ralat: " PDO::__construct(): Pelayan menghantar charset (255) yang tidak diketahui kepada klien. Sila laporkan kepada pembangun. Ini boleh timbul dalam situasi yang melibatkan bekas Docker dan aplikasi Symfony.
Punca:
MySQL versi 8 memperkenalkan perubahan di mana set aksara lalai telah diubah suai kepada utf8mb4. Walau bagaimanapun, sesetengah pelanggan, seperti versi PHP tertentu, tidak mengenali set aksara ini. Apabila pelayan menyampaikan charset lalainya kepada pelanggan, kekurangan pemahaman pelanggan membawa kepada ralat.
Penyelesaian:
Penyelesaian yang ideal adalah untuk menaik taraf pelanggan kepada yang menyokong utf8mb4. Untuk tujuan keserasian, adalah mungkin untuk melaraskan set aksara pelayan kepada utf8, seperti yang ditunjukkan di bawah:
Langkah 1: Edit Konfigurasi Pelayan MySQL
Tambah baris berikut ke /etc/my.cnf dan mulakan semula MySQL:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
Langkah 2: Mulakan semula MySQL
Mulakan semula MySQL untuk menggunakan perubahan:
service mysql restart
Pengubahsuaian ini akan memastikan keserasian dengan pelanggan lama yang tidak menyokong utf8mb4.
Atas ialah kandungan terperinci Mengapa Sambungan PHP PDO Saya Gagal dengan 'Set Aksara Tidak Diketahui (255)' daripada MySQL 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!