Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO::__construct():Server mengirim charset (255) yang tidak diketahui klien. Tolong, laporkan ke pengembang

MySQL 8 mengubah charset default menjadi utf8mb4. Tetapi beberapa klien tidak mengetahui rangkaian karakter ini. Oleh karena itu, ketika server melaporkan rangkaian karakter defaultnya ke klien, dan klien tidak tahu apa yang dimaksud server, itu akan memunculkan kesalahan ini.

Lihat juga https://bugs.mysql.com/bug.php?id=71606

Bug tersebut bertentangan dengan MySQL Connector/C++ sehingga memengaruhi lebih dari sekadar PHP.

Oke—saya berhasil dengan mengubah set karakter ke utf8, agar kompatibel dengan klien yang tidak ditingkatkan. Saya menambahkan ini ke /etc/my.cnf dan memulai kembali mysqld:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

Saya menemukan pengaturan ini dalam jawaban dari 2010:Ubah set karakter default MySQL ke UTF-8 di my.cnf?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkah saya menggunakan pernyataan yang disiapkan PDO untuk mengikat pengidentifikasi (nama tabel atau bidang) atau kata kunci sintaks?

  2. Bagaimana Fungsi LCASE() Bekerja di MySQL

  3. Dapatkan jumlah catatan untuk semua tabel di database MySQL

  4. Pymysql Cursor.fetchall() / Fetchone() Mengembalikan Tidak Ada

  5. Memecahkan kegagalan tautan komunikasi dengan JDBC dan MySQL