(Diselesaikan) Pengumpulan UNKNOW UTF8MB4_0900_AI_CI

(Diselesaikan) Pengumpulan UNKNOW UTF8MB4_0900_AI_CI

Pengumpulan adalah satu set peraturan yang mentakrifkan cara membandingkan dan menyusun rentetan watak dalam pelayan pangkalan data. Dalam tutorial ini, kami membincangkan ralat yang dihadapi semasa pemulihan pangkalan data pada pelayan lain.

Mari lihat masalah dan penyelesaian kepada masalah yang dihadapi baru -baru ini:

Masalah

Semasa penghijrahan aplikasi web, saya mendapat ralat di bawah semasa memulihkan pangkalan data pada pelayan lain. ID pengumpulan mungkin berbeza berdasarkan versi MySQL.

Mesej ralat:

Ralat 1273 (HY000) pada baris 25 pengumpulan tidak diketahui: 'UTF8MB4_0900_AI_CI' 

Lihat tangkapan skrin ralat semasa pemulihan pangkalan data.

Di sini anda pergi dengan penyelesaian.

Penyelesaian

Selepas sedikit siasatan, saya mendapati bahawa pelayan MySQL berjalan di destinasi adalah versi yang lebih lama daripada sumbernya. Oleh itu, kami mendapat bahawa pelayan destinasi tidak mengandungi pengumpulan pangkalan data yang diperlukan.

Kemudian kami melakukan sedikit tweak dalam fail sandaran untuk menyelesaikannya. Edit fail sandaran pangkalan data dalam editor teks dan ganti "UTF8MB4_0900_AI_CI"Dengan"UTF8MB4_GENERAL_CI"Dan"Charset = UTF8MB4"Dengan"Charset = UTF8".

Ganti tali di bawah:

Enjin = innoDB default charset = UTF8MB4 COLLATE = UTF8MB4_0900_AI_CI; 

dengan:

Enjin = innoDB default charset = UTF8 collate = utf8_general_ci; 

Simpan fail anda dan pulihkan pangkalan data.

Pengguna Sistem Linux boleh menggunakan arahan SED untuk menggantikan teks dalam fail secara langsung.

Sed -I 'S/UTF8MB4_0900_AI_CI/UTF8_GENERAL_CI/G' BACKUP.SQL  Sed -I 's/charset = UTF8MB4/charset = UTF8/g' sandaran.SQL  

Itu. Selepas perubahan di atas, pangkalan data berjaya dipulihkan!

Harap ini penyelesaian membantu anda menyelesaikan "Pengumpulan yang tidak diketahui: 'UTF8MB4_0900_AI_CI'" isu.