Apabila cuba mewujudkan sambungan pangkalan data MySQL dalam Symfony 3, pengguna mungkin menghadapi ralat berikut:
PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers.
Isu ini timbul disebabkan oleh perubahan dalam Charset lalai MySQL dalam versi 8.0.1 hingga utf8mb4. Sesetengah pelanggan, seperti PHP 7.1.3, mungkin tidak mengenali charset ini.
Ralat berlaku apabila pelayan MySQL menyampaikan charset lalainya kepada klien, tetapi klien gagal untuk mengenali ia. Isu ini memberi kesan kepada pelanggan yang menggunakan pemacu pdo_mysql, termasuk PHP.
Sebelum MySQL 8.0.1, charset lalai ialah utf8. Walau bagaimanapun, MySQL 8.0.1 memperkenalkan utf8mb4 sebagai lalai baharu, yang menyediakan sokongan aksara yang lebih luas dan pengendalian aksara Unikod yang lebih baik.
Resolusi yang ideal adalah untuk meningkatkan klien kepada versi yang mengenali utf8mb4. Walau bagaimanapun, sebagai penyelesaian sementara, pengguna boleh mengkonfigurasi set aksara pelayan secara manual kepada utf8, yang serasi dengan pelanggan yang tidak dinaik taraf.
[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 memastikan keserasian dengan versi pelanggan yang lebih lama.
Adalah penting untuk ambil perhatian bahawa menaik taraf pelanggan kekal sebagai penyelesaian jangka panjang pilihan untuk menyelesaikan isu ini.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'PDO::__construct(): Server Sent Charset (255) Unknown to the Client' dalam Symfony 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!