Rumah >pangkalan data >tutorial mysql >Ralat Sambungan PDO MySQL: Bagaimana untuk Menyelesaikan 'Pelayan Dihantar Charset (255) Tidak Diketahui Pelanggan'?
Ralat Tidak Padan Charset: Server Dihantar Charset Tidak Diketahui (255)
Mencuba untuk menyambung ke pangkalan data MySQL daripada Symfony 3 menggunakan hasil PDO dalam ralat berikut: PDO::__construct(): Server menghantar set charset (255) yang tidak diketahui kepada klien. Sila laporkan kepada pemaju. Ralat ini boleh berlaku disebabkan oleh ketidakpadanan charset antara pelayan dan klien.
Sebab
Dalam MySQL 8, charset lalai telah bertukar kepada utf8mb4. Walau bagaimanapun, sesetengah pelanggan, seperti PDO, mungkin tidak mengenali set aksara ini. Apabila pelayan menghantar charset lalainya kepada klien, dan klien tidak mengenalinya, ralat dilemparkan.
Penyelesaian
Penyelesaian yang disyorkan adalah untuk menaik taraf perisian klien kepada versi yang menyokong set aksara utf8mb4. Walau bagaimanapun, sehingga peningkatan boleh dilakukan, penyelesaian wujud:
Penyelesaian
Tukar set aksara pelayan kepada utf8 agar serasi dengan pelanggan yang tidak ditingkatkan. Untuk melakukan ini, tambahkan tetapan berikut pada fail /etc/my.cnf dan mulakan semula pelayan MySQL:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
Atas ialah kandungan terperinci Ralat Sambungan PDO MySQL: Bagaimana untuk Menyelesaikan 'Pelayan Dihantar Charset (255) Tidak Diketahui Pelanggan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!