# 1273 - Koleksi tidak dikenal: 'utf8mb4_unicode_520_ci'


157

Saya memiliki situs web WordPress di server WAMP lokal saya . Tetapi ketika saya mengunggah databasenya ke server langsung, saya mendapatkan kesalahan

#1273  Unknown collation: utf8mb4_unicode_520_ci

Bantuan apa pun akan dihargai!


37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi

4
Dalam lautan solusi temukan dan ganti di bawah ini, jangan lupa untuk checkout dulu jawaban @ SherylHohman - cukup tingkatkan ke mariadb / mysql 5.6 sehingga server Anda mendukung pemeriksaan ini.
squarecandy


Ada juga panduan cepat di sini ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ) yang menjelaskan semua 3 langkah yang harus Anda ambil untuk memastikan Anda telah melakukan segalanya.
WPZA

Periksa solusi ini di sini untuk # 1273 - Kolasi tidak dikenal: 'utf8mb4_0900_ai_ci' freakyjolly.com/...
Code Spy

Jawaban:


217

Anda dapat menyelesaikan ini dengan menemukan

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

di .sqlfile Anda , dan bertukar dengan

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Saya merekomendasikan jawabannya oleh Sabba ( stackoverflow.com/a/44122258/168309 ) karena ia mempertahankan utf8mb4
Amir

5
Solusi di bawah @ Sabba Keynejad lebih baik menurut saya, karena ia menyimpan MB4, Anda harus mencobanya terlebih dahulu.
Maor Barazany

Catatan, saya harus mengganti ini di beberapa tempat di File SQL. Juga ada tempat-tempat di mana saya harus melakukan stackoverflow.com/a/44122258/1436129 di bawah ini juga.
aubreypwd

Sebenarnya ditemukan bahwa jawaban ini berhasil ketika jawaban yang ditautkan oleh Sabba tidak. Mungkin karena standar instalasi MySql saya. +1
Lewat Pengodean

itu tidak berfungsi, sekarang memberikan kesalahan:, COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' saya telah mengganti utf8mb4_unicode_520_cidengan utf8mb4_unicode_cidan itu berfungsi, sesuai jawaban Sabba.
Haritsinh Gohil

286

Saya percaya kesalahan ini disebabkan karena server lokal dan server hidup menjalankan versi MySQL yang berbeda. Untuk mengatasi ini:

  1. Buka file sql di editor teks Anda
  2. Temukan dan ganti semua utf8mb4_unicode_520_cidenganutf8mb4_unicode_ci
  3. Simpan dan unggah ke db mySql baru

Semoga itu bisa membantumasukkan deskripsi gambar di sini


4
TIDAK!!! Telah banyak didokumentasikan yang utf8mb4_unicode_520_cimemiliki dukungan UTF-8 yang jauh lebih baik daripada utf8mb4_unicode_ci! Sauce: mysql.rjweb.org/doc.php/charcoll#best_practice dengan klarifikasi visual yang membuktikan 520_ci lebih unggul di sini: mysql.rjweb.org/utf8_collations.html
John

5
@ John, Artikel yang Anda tautkan tidak benar-benar membela komentar itu. "Jadi" mereka bahkan tidak dapat dinyatakan dengan baik dari premis mereka. Secara keseluruhan seluruh artikel ditulis dengan buruk, meskipun tampaknya ada beberapa informasi bagus di sana. 520 collation menggunakan versi yang lebih baru dari Unicode Collation Algorithm (UCA - versi 5.2.0) dengan bobot yang berbeda, tetapi untuk mengatakannya "memiliki dukungan UTF-8 yang jauh lebih baik" tampaknya lebih dari sekadar peregangan.
Gremio

Misalkan saja badan Standar (Unicode) biasanya akan membuat setiap versi yang lebih baru (5.20) "lebih baik" daripada versi yang lebih lama (4.0).
Rick James

Ini jawaban terbaik.
Niby

Saya menyarankan solusi ini karena ini menggantikan semua kejadian "utf8mb4_unicode_520_ci". Sedangkan jawaban Savani sandip menyisakan beberapa.
Rakesh

49

Dalam kasus saya ternyata
server baru saya sedang berjalan MySQL 5.5,
server lama sedang berjalan MySQL 5.6.
Jadi saya mendapatkan kesalahan ini ketika mencoba mengimpor .sqlfile yang saya ekspor dari server lama saya.

MySQL 5.5 tidak mendukung utf8mb4_unicode_520_ci, tetapi
MySQL 5.6 tidak.

Memperbarui ke MySQL 5.6pada server baru memecahkan kesalahan pemeriksaan!

Jika Anda ingin mempertahankan MySQL 5.5, Anda dapat:
- membuat salinan .sqlfile yang diekspor
- ganti instance utf8mb4unicode520_ciand utf8mb4_unicode_520_ci
... withutf8mb4_unicode_ci
- mengimpor .sqlfile yang diperbarui .


2
Ini benar-benar cara terbaik untuk melakukannya jika Anda memiliki kontrol penuh atas server Anda. Tingkatkan server baru sehingga cocok dengan server lama. Jika Anda tidak memiliki akses untuk memutakhirkan lokasi server baru Anda, metode temukan-ganti mungkin akan baik-baik saja, tetapi dalam hal apa pun Anda hanya dapat melakukan peningkatan ini, Anda harus melakukannya.
squarecandy

1
5.6 adalah saat 520 ditambahkan.
Rick James

Ini seharusnya jawaban yang benar. Sebagian besar solusi lain lebih seperti peretasan. Terima kasih @SherylHohman
sawyerrken

30

Buka file sql di editor teks Anda;

1. Cari: utf8mb4_unicode_ci Ganti: utf8_general_ci (Ganti Semua)

2. Cari: utf8mb4_unicode_520_ci Ganti: utf8_general_ci (Ganti Semua)

3. Cari: utf8mb4 Ganti: utf8 (Ganti Semua)

Simpan dan unggah!


Saya sangat senang saya menemukan solusi Anda untuk ini, saya telah mendapatkan kesalahan # 1273 ini selama berhari-hari dan saya tidak bisa menemukan solusi untuk ini
flying-dev

Penyelamat. Terima kasih!
robbclarke


14

ganti mudah

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

2
Di macOS:sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas


6

Temukan dan ganti:

utf8mb4_unicode_520_ci

dengan

utf8_general_ci

dalam seluruh file sql


3
generaldan utf8keduanya langkah mundur.
Rick James

3

Terlambat ke pesta, tetapi dalam hal ini terjadi dengan WORDPRESSinstalasi:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

Di phpmyadmin, di bawah export method> Format-specific options(ekspor kustom)

Mulai : MYSQL40

Jika Anda akan mencoba mengimpor sekarang, Anda sekarang mungkin mendapatkan pesan kesalahan lain:

1064 - You have an error in your SQL syntax; .....

Itu karena TYPEopsi yang lebih lama yang identik dengan ENGINEdihapus di MySQL 5.5.

Buka .sqlfile Anda , cari dan ganti semua instance

dari TYPE=keENGINE=

Sekarang impor harus berjalan dengan lancar.


3

Getting error collation # 1273 - Collation tidak dikenal: 'utf8mb4_unicode_520_ci' disebabkan oleh perbedaan versi MySQL dari mana Anda mengekspor dan server MySQL kami yang Anda impor. Pada dasarnya, perpustakaan Wordpress untuk versi yang lebih baru memeriksa untuk melihat apa versi SQL situs Anda berjalan. Jika menggunakan MySQL versi 5.6 atau lebih, itu mengasumsikan penggunaan Unicode Collation Algorithm (UCA) baru dan lebih baik yang disebut "utf8mb4_unicode_520_ci". Ini bagus kecuali Anda akhirnya memindahkan situs WordPress Anda dari versi 5.6 MySQL yang lebih baru ke versi MySQL yang lebih lama, versi pra.

Untuk mengatasinya, Anda harus mengedit file ekspor SQL dan melakukan pencarian dan ganti, mengubah semua instance dari 'utf8mb4_unicode_520_ci' menjadi 'utf8mb4_unicode_ci'. Atau ikuti langkah-langkah di bawah ini jika Anda memiliki PHPMyAdmin:

  1. Klik tab Ekspor untuk basis data
  2. Klik tombol radio Kustom.
  3. Buka bagian berjudul Opsi spesifik format dan ubah drop-down untuk sistem Database atau server MySQL lama untuk memaksimalkan kompatibilitas keluaran dengan: dari NONE ke MYSQL40.
  4. Gulir ke bawah dan klik GO.

1

Dalam kasus saya, saya menggantinya utf8_general_cidengan sed seperti ini:

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

Setelah itu, saya bisa mengimpornya tanpa masalah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.