Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Apl Symfony 3 Saya Mendapat Ralat 'PDO::__construct(): Server menghantar charset (255) tidak diketahui kepada klien' Semasa Menyambung ke MySQL 8.0.1?

Mengapa Apl Symfony 3 Saya Mendapat Ralat 'PDO::__construct(): Server menghantar charset (255) tidak diketahui kepada klien' Semasa Menyambung ke MySQL 8.0.1?

Barbara Streisand
Barbara Streisandasal
2024-12-11 02:59:09828semak imbas

Why Does My Symfony 3 App Get a

Ralat Charset Server Tidak Diketahui dalam Sambungan MySQL PDO

Apabila cuba mewujudkan sambungan pangkalan data MySQL daripada aplikasi Symfony 3, mesej ralat timbul : "PDO::__construct(): Server menghantar set charset (255) yang tidak diketahui kepada klien. Sila laporkan kepada pembangun." Ini menandakan isu di mana pelayan MySQL menghantar set aksara (255) yang klien PHP tidak biasa.

Latar Belakang:

Ralat berpunca daripada MySQL 8.0 Transformasi set aksara lalai .1 kepada utf8mb4. Walau bagaimanapun, tidak semua pelanggan boleh mengenali set watak baharu ini. Akibatnya, penghantaran pelayan mencetuskan ralat ini.

Penyelesaian:

Penyelesaian yang optimum ialah menaik taraf perisian klien. Walau bagaimanapun, penyelesaian sementara tersedia:

  1. Tukar set aksara pelayan MySQL kepada utf8 untuk memastikan keserasian dengan klien lama.
  2. Tambah tetapan berikut pada fail konfigurasi MySQL (/etc /my.cnf):
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
  1. Mulakan semula pelayan MySQL (mysqld) untuk menggunakan perubahan ini.

Pertimbangan Tambahan:

  • Ralat mungkin berterusan walaupun versi klien PHP ialah 7.1.33 atau lebih tinggi.
  • Pastikan pemandu PDO dikemas kini kepada yang terkini versi.
  • Sahkan bahawa set aksara pangkalan data ditetapkan kepada UTF8.

Atas ialah kandungan terperinci Mengapa Apl Symfony 3 Saya Mendapat Ralat 'PDO::__construct(): Server menghantar charset (255) tidak diketahui kepada klien' Semasa Menyambung ke MySQL 8.0.1?. 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