Ralat Sambungan PDO dengan Charset Tidak Diketahui (255)
Apabila cuba mewujudkan sambungan pangkalan data menggunakan PHP Data Objects (PDO), anda boleh menghadapi perkara berikut ralat:
PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers
Penjelasan
MySQL 8.0.1 memperkenalkan perubahan di mana set aksara lalai telah dikemas kini kepada utf8mb4. Walau bagaimanapun, sesetengah aplikasi pelanggan, termasuk versi PHP yang lebih lama, mungkin tidak mengecam set aksara ini, yang membawa kepada ralat ini.
Penyelesaian Kemungkinan
Penyelesaian yang disyorkan adalah untuk menaik taraf anda aplikasi klien kepada versi yang menyokong utf8mb4. Ini akan memastikan keserasian dengan set aksara lalai pelayan.
Penyelesaian Alternatif
Jika menaik taraf klien tidak dapat dilaksanakan, anda boleh melaraskan set aksara pelayan kepada utf8, iaitu lebih dikenali oleh pelanggan. Ini boleh dicapai dengan menambah baris berikut pada fail /etc/my.cnf anda:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
Mulakan semula MySQL selepas membuat perubahan ini. Ini akan membolehkan pelanggan anda menyambung tanpa menghadapi ralat tidak diketahui set charset.
Atas ialah kandungan terperinci Mengapa Sambungan PHP PDO Saya Gagal dengan 'Pelayan menghantar charset (255) tidak diketahui kepada pelanggan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!