Rumah >pangkalan data >tutorial mysql >Ralat Sambungan PDO MySQL: Bagaimana untuk Menyelesaikan 'Pelayan Dihantar Charset (255) Tidak Diketahui Pelanggan'?

Ralat Sambungan PDO MySQL: Bagaimana untuk Menyelesaikan 'Pelayan Dihantar Charset (255) Tidak Diketahui Pelanggan'?

Linda Hamilton
Linda Hamiltonasal
2024-12-23 07:51:32624semak imbas

MySQL PDO Connection Error: How to Resolve

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!

Kenyataan:
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