24 Ağu 2023
by Şerif Çiçek

Illegal mix of collations error in MySQL - utf8_unicode_ci and utf8_general_ci hatası

Illegal mix of collations error in MySQL - utf8_unicode_ci and utf8_general_ci hatası

Bu hata, genellikle metin karşılaştırmalarının yapıldığı sorgularda, farklı karakter kümesi (character set) ve düzenlemelerinin (collation) karıştırılması sonucu ortaya çıkar. Hatanın tam olarak nerede meydana geldiğini belirlemek zor olabilir, ancak genellikle WHERE veya JOIN gibi yerlerde metin karşılaştırmaları yapılırken karakter kümesi ve düzenleme uyumsuzlukları nedeniyle bu tür hatalar oluşabilir.


Hatanın metni, utf8_turkish_ci ve utf8_general_ci düzenlemeleri arasında bir karşılaştırma işlemi sırasında ortaya çıktığını belirtiyor. Bu, iki farklı düzenleme ayarının karşılaştırma işlemlerinde kullanılması nedeniyle meydana gelir.


Veritabanınızın tablo, sütun ve karşılaştırmalar için belirlediğiniz karakter kümesi ve düzenlemelerini tekrar gözden geçirmeniz gerekecek. Saklı yordamınızda da aynı karakter kümesi ve düzenlemelerini kullanmaya dikkat etmelisiniz.


Eğer utf8_turkish_ci ve utf8_general_ci düzenlemeleri arasında bir uyumsuzluk varsa, metinleri aynı düzenlemeye çevirmeye çalışmak veya sorgularınızda COLLATE ifadesini kullanarak uyumlu düzenlemeleri belirtmek gerekebilir.


Örneğin, bir karşılaştırma yaparken COLLATE ifadesini kullanarak düzenlemeyi belirtebilirsiniz:


Veritabanını ilk kurduğunuzda muhtemelen utf8_general_ci olarak tanımnlamış olabilirsiniz.
Düzenlemeyi aşağıdaki gibi yapabilirsiniz.   

ALTER DATABASE veritabanıadı COLLATE = 'utf8_general_ci';

ALTER TABLE tablo CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci


Add Comment
Yorum yazmak için lütfen üye olunuz