7 Kasım 2007 Çarşamba

MySQL UTF 8 Problemi

MySQL varsayılan karakter saklama (encoding) metodu olarak latin alfabesini kullanmaktadır. Bunu utf-8 olarak değiştirmek için linux’ta mysql konfigurasyon dosyasında bazı değişiklikler yapmamız gerekmektedir.
MySQL konfigurasyon dosyası genelde /etc/my.cnf dir bazı sistemlerde (örneğin ubuntu) /etc/mysql/my.cnf ‘dir. Bu dosyayı açıp [mysqld] yazan satırı bulup alt o kısıma default-character-set=utf8 parametresini eklemeliyiz, daha sonra [client] satırını bulup onun altına da “default-character-set=utf8″ satırını eklemeliyiz.
Bu parametreler ile veri tabanımızın dosyasını değiştirmiş olduk fakat veritabanı henüz değişikliklerden etkilenmedi, veritabanının bu değişikliklerden etkilenmesi için yeniden başlatılması gerekli bunun için root hakları ile /etc/init.d/mysql restart komutunu vermemiz yeterli. /etc/init.d/mysql scripti mysql sunucusun sciptidir eğer mysql sunucunuz farklı şekilde başlatılıyorsa o yöntemi kullanmalısınız ya da en son çare bilgisayarı yeniden başlatırsınız.
Bu dosyaya eklenen satırlar bazen nedense sunucuya etki etmiyor, eğer böyle bir durumla karşılaşırsanız mysql sunucusunu (mysqld) başlatan scriptte bir değişiklik yaparak çözüme ulaşabilirsiniz. /etc/init.d/mysql scriptini bir metin editörü ile açıp en altlarda yer alan case blounda ’start’) ile başlayan satırlarda /usr/bin/mysqld_safe komutunun olduğu satırı bulun ve /usr/bin/mysqld_safe komutunun yanına –character-set-server=utf8 parametresini ekleyin, dosyayı kaydedin ve mysqli yeniden başlatın. Bu adım ile büyük ihtimalle utf-8 problemi ortadan kalkacaktır.

Hiç yorum yok: