Eğer “Bilinmeyen Karşılaştırma” hatası alıyorsanız, bu muhtemelen MySQL sunucu sürümünüzün 8.0.1’den eski olması ve bu karşılaştırmayı desteklememesi nedeniyledir. Bu sorunu çözmek için aşağıdaki adımları izleyebilirsiniz:
Hata: ERROR 1273 (HY000) at line 1838359: Unknown collation: ‘utf8mb4_0900_ai_ci’
Sorun Bir web uygulamasının taşınması sırasında, veritabanını başka bir sunucuda geri yüklerken aşağıdaki hatayı aldım. Hata mesajı şu şekildedir:
Hata 1273 (HY000) satır 25’te Bilinmeyen karşılaştırma: ‘utf8mb4_0900_ai_ci’ Veritabanı geri yükleme sırasında hata ekran görüntüsünü görmek için tıklayınız.
Çözüm Kısa bir inceleme sonrasında, hedefte çalışan MySQL sunucusunun kaynaktan daha eski bir sürüm olduğunu bulduk. Bu nedenle hedef sunucunun gerekli veritabanı karşılaştırmasını içermediğini anladık. Daha sonra yedeği metin düzenleyicide açarak “utf8mb4_0900_ai_ci” ifadesini “utf8mb4_general_ci” ve “CHARSET=utf8mb4” ifadesini “CHARSET=utf8″ ile değiştirecek bir düzenleme yaptık.
Aşağıdaki dizesini değiştirin:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Şu şekilde değiştirin:
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Burada CHARSET’i utf8 olarak değiştiriyoruz, ki bu daha eski bir versiyondur ve sınırlamalara sahiptir. Bu değişiklikleri veritabanında yapmadan önce bu makalenin sonundaki etkileri okumanızı öneririz.
Dosyanızı kaydedin ve veritabanınızı geri yükleyin.