Pertimbangkan daftar periksa berikut:
-
Apakah Anda memeriksa file konfigurasi MySQL Anda (/etc/my. cnf) ? Seharusnya:
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Dan Anda dapat memverifikasinya melalui:
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; +--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+ 10 rows in set (0.00 sec)
-terima kasih kepada postingan blog Mathias
-
Enfore menegakkan UTF-8 untuk digunakan antara Python dan MySQL:
# Connect to mysql. dbc = MySQLdb.connect(host='###', user='###', passwd='###', db='###', use_unicode=True) # Create a cursor. cursor = dbc.cursor() # Enforce UTF-8 for the connection. cursor.execute('SET NAMES utf8mb4') cursor.execute("SET CHARACTER SET utf8mb4") cursor.execute("SET character_set_connection=utf8mb4") # Do database stuff. # Commit data. dbc.commit() # Close cursor and connection. cursor.close() dbc.close()
- terima kasih kepada Jawaban Tomasz Nguyen tentang stackoverflow
-
Kiat resmi dari MySQL mengenai
Can't initialize character set
:Kesalahan ini dapat disebabkan oleh salah satu penyebab berikut:
-
Kumpulan karakter adalah kumpulan karakter multibyte dan Anda tidak memiliki dukungan untuk kumpulan karakter di klien. Dalam hal ini, Anda perlu mengkompilasi ulang klien dengan menjalankan CMake dengan
-DDEFAULT_CHARSET=charset_name
atau-DWITH_EXTRA_CHARSETS=charset_name
pilihan. Lihat Bagian 2.9.4, “Konfigurasi Sumber MySQL Opsi” . -
Semua binari MySQL standar dikompilasi dengan -
DWITH_EXTRA_CHARSETS=complex
, yang memungkinkan dukungan untuk semua set karakter multibyte. Lihat Bagian 2.9.4, “Konfigurasi Sumber MySQL Opsi” . -
Kumpulan karakter adalah kumpulan karakter sederhana yang tidak dikompilasi ke dalam mysqld, dan file definisi kumpulan karakter tidak berada di tempat yang diharapkan klien untuk menemukannya.
Dalam hal ini, Anda perlu menggunakan salah satu metode berikut untuk menyelesaikan masalah:
-
Kompilasi ulang klien dengan dukungan untuk set karakter. Lihat Bagian 2.9.4, “Konfigurasi Sumber MySQL Opsi” .
-
Tentukan ke klien direktori tempat file definisi kumpulan karakter berada. Untuk banyak klien, Anda dapat melakukannya dengan
--character-sets-dir
pilihan. -
Salin file definisi karakter ke jalur yang diharapkan klien.
-
-