Bir mySQL veritabanınız varsa ve bu veritabanı yedekle, taşımayla, şunla bunla taa 3.23.33 sürümünden başlayıp türlü türlü sürümlerde ve tabii ki türlü türlü default ya da set edilmiş charsetlerle çalışmışsa tabii ki bir karakter sorunu başgöstermemesi ihtimali neredeyse yok gibi. ( Yeterince uzun bir zaman diliminde yaşama şansı 0′a ulaşır da denebilir )

En son bir sitenin yedeğini Plesk ile aldım. Aldıktan bir zaman sonra yedeği recover edeyim dedim ama ne mümkün. İşlem DB’yi yarattıktan sonra çakılıyordu. Bunun üzerine uyanıklık yapıp daha önce PMA ile aldığım veritabanı yedeğini kendi yerelimde yüklemeye çalıştım. Ve o kahreden hata kendini gösterdi : Data too long

Üzerinde fazla durmadım. Daha önce başıma gelmişti ama nasıl çözdüğümü de hatırlamıyordum. Ama sorun sürekli kafamın bir yerinde beni meşgul etmekteydi. Bu meşguliyet normaldi çünkü yediği yemeğin ne olduğunu unutan ben bu tür çözümlenmemiş sorunları asla unutmuyorum. Aman ne mutlu!

Derken veritabanının eklenmiş taraflarını (mesela birkaç tablonunun sadece schemasını) incelerken tabloların latin1_swedish_ci olarak tanımlandığını farkettim. Hani 3.23.33 zamanlarında çok popüler olan latin1_swedish_ci.

Bunun üzerine tabloların yaratıldığı kısımlarda default charset olarak verilmiş latin1 değerini utf8 yaptım. Böylelikle veriyi sorunsuz bir şekilde insert edebildik. Desem de inanmayın…

Türkçe karakterler bozuktu bu sefer. Türkçe karakterler yerini tarihin derinliklerinden gelen çivi yazısı şekillerine bırakmıştı. Veri dosyasını Ultraedit text editörü ile düzenleyemedim. Nedense abuk sabuk karakterleri bu sefer bulamadı Ultraedit (eskiden bulurdu, zannedersem artık beni kullanma diyor). Ben de sen yapamazsan PHP yapar dedim, birkaç satır PHP kodu yazdım, denedim, gene olmadı.

Nihayet aklıma PC’ye fi tarihinde bir OpenOffice kurduğum aklıma geldi. Bir text document yarattım ve içine SQL dosyasının içeriğini yapıştırdım. Başladım karakterleri doğru olanları ile replace etmeye.

En nihayetinde bu uzun macera sonunda karakter setimiz düzeldi, data too long hatasından kurtulduk. Herşey çözüme kavuştu.

Ancak bu seferde bir iki saat uğraşıp adam ettiğim datayı kullanmamaya karar verdim. Garip ama boşa sorun çözme konusunda zannedersem oscar bana gelebilir, dikkatli olun.

Tags: , , ,
Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>