Windows’ta MySQL tablolarında büyük harf sorunu

logo-mysql logo-mysql   Windows ortamında çalışan MySQL’in tablolarında büyük küçük harf ayrımı yoktur. Başka bir deyişle, SiparisBilgileri tablosu ile siparisbilgileri tablosu aynı anlama gelir. İkisi de çalışır.

Bu iyi bir şey gibi gözükebilir. Öyledir de belki. Ancak bazı senaryolarda ciddi baş ağırları yaratabilir.

Sıkıntılı senaryo 1…

Bir uygulamanız var. Linux üzerinde çalışıyor. Veritabanı da yine Linux bir makinede. Siz ise Windows ortamında çalışan bir uygulama geliştiricisisiniz. Çalışırken, veritabanındaki bazı tabloların içini doldurdunuz. Bunları Linux makinesine göndermeniz lazım. PhpMyAdmin’i açıp hemen bir sql dump alıyorsunuz. Linux makinesine gönderiyorsunuz. Çat! Bulunmayan tablo hatası! siparisbilgileri diye bir tablo yokmuş. Ama sizde vardı? Şey… Aslında sizin için aynı olan siparisbilgileri ve SiparisBilgileri tablosu Linux için aynı değil. Şimdi sql dump’ını Notepad++ ile açıp, tüm siparisbilgilerini elle değiştirmeniz gerekecek.

Sıkıntılı senaryo 2…

Bir veritabanınız var. Yükü “master/slave” şeklinde birkaç makineye dağıtıyorsunuz. Ancak veritabanlarında senkronizasyon problemleri çıkmaya başlıyor. Neden? Çünkü tablo isimleri aynı değil.

Çözüm

Bunu çözmenin çok basit bir yolu var: Windows’ta da MySQL’i de büyük-küçük harfe duyarlı hale getirmek. Bunun için tek yapmamız gereken MySQL’in yapılandırma dosyasını açmak ve aşağıdaki satırı eklemek/düzenlemek:

lower_case_table_names=0

Sonuçta şuna benzer bir şey olacak:

my.ini-upper-case my.ini-upper-case  

Bu ayarı yaptıktan sonra MySQL’i yeniden başlatmamız gerektiğini söylememe gerek yok sanırım.

Detaylar

lower_case_table_names toplamda üç farklı değer alabiliyor. Bunların detaylarına buraya tıklayarak MySQL’in kendi sitesinden ulaşabilirsiniz.