Modern web uygulamalarında çok dilli destek, emojiler, semboller ve özel karakterler için uygun karakter seti kullanmak çok önemlidir. MySQL'de varsayılan utf8
karakter seti, gerçekte tam anlamıyla Unicode desteği sağlamaz; bu nedenle utf8mb4
karakter seti tercih edilmelidir. Bu yazıda, mevcut bir tabloyu utf8mb4
karakter setine dönüştürmenin nedenlerini, faydalarını ve nasıl yapılacağını adım adım anlatacağız.
Neden utf8mb4
Kullanmalıyız?
-
utf8mb4
, gerçek anlamda tam Unicode desteği sunar. -
Emojiler, çin alfabesi gibi 4 byte'lık karakterleri destekler.
-
utf8
sadece 3 byte'a kadar destekler, bu nedenle veri kaybı veya hata oluşabilir. -
SEO, mobil ve sosyal medya entegrasyonu için karakter uyumluluğu kritik öneme sahiptir.
Veritabanı ve Tabloları Nasıl Dönüştürürüz?
Tablonun karakter setini dönüştürmek için kullanılan temel SQL komutu şöyledir:
ALTER TABLE ekasunucu CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Bu komut ne yapar:
-
ekasunucu
tablosundaki tüm metin alanlarını (VARCHAR
,TEXT
vb.)utf8mb4
karakter setine dönüştürür. -
Karşılaştırma için
utf8mb4_unicode_ci
kullanılır. Bu, Unicode karakterleri doğru bir şekilde sıralar.
Adım Adım Dönüşüm Rehberi
-
Yedek Alın
Her zaman önce veritabanınızın tam bir yedeğini alın:mysqldump -u root -p veritabaniadi > yedek.sql
-
Veritabanı Karakter Setini Değiştirin
ALTER DATABASE veritabaniadi CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
-
Tüm Tabloları Dönüştürün
Her tablo için aşağıdaki komutu kullanabilirsiniz:ALTER TABLE tabloadi CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Yeni Oluşan Tabloları Ayarlamak
Veritabanı yapılandırma dosyalarınızdautf8mb4
set edildiğinden emin olun:[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Ardından MySQL sunucusunu yeniden başlatın:
systemctl restart mysql
Veritabanınızı utf8mb4_unicode_ci
karakter setine dönüştürmek, hem çok dilli içerik desteği sağlar hem de modern web standartlarıyla uyumluluk kazandırır. Bu dönüşüm, gelecekte karşılaşabileceğiniz karakter kodlama problemlerini önceden çözmenize yardımcı olur. Tabloları tek tek dönüştürmeyi unutmayın ve mutlaka yedekleme işlemini atlamayın. Karakter seti uyumu, veritabanı sağlığının temel taşlarından biridir.