(Access) MDB Dosyadan MySQL üzerine bilgi aktarımı (Migrate)
Örnek olarak bir süredir ASP ve Access ikilisi ile ortaklaşa WEB tabanlı yazılımlar geliştiriyorsunuz, fakat günün birinde gördünüz ki; access db bağlantılarında zaman zaman durduk yere hatalar oluşuyor ve sayfanız açılmıyor. Bu durumda yapılması gereken (önerim) sunucudaki MDB dosyanın bir access yazılımı ile açılarak ONARIM (REPAIR) işlemi yapıldıktan sonra yeniden sunucuya yüklenmesidir.
Bunun benzeri bir durumla ben bu gün karşılaştım ve artık MYSQL veya MSSQL sunucuya geçmenin zamanı geldi diye düşündüğüm için de olsa gerek MDB dosyamı MYSQL üzerine migrate etmeye karar verdim. Bunu yaparken de Mdb To Mysql Migrate aracını kullandım.
Bu programda LOCATE .MDB FILE tuşuna basarak kaynak dosyanızı seçiyorsunuz daha sonra işinize yarayacak olan tablolarınızı seçip EXPORT Mysql File tuşuna basarak SQL dosyanızı oluşturuyorsunuz.
Ancak burada dikkat edilmesi gereken konu; aktarılan kolon bilgileri arasında ‘ veya ” sembolleri varsa mysql aktarımlarında bu semboller büyük sıkıntı yaşatıyor ve veri yapılarında BLOB sorunlarına yol açabiliyor.
Bu sorunu gidermek için de SQL dosyanızı NOTEPAD2 (http://www.flos-freeware.ch/zip/notepad2.zip) programı ile açtıktan sonra ‘ karakterini & #039; ve ” karakterini de & #034; ile değiştirmeniz (find and replace) gerekmektedir.
(yukarıda verilen & #039; yazımında & ile # arasındaki boşluk kaldırılmalıdır)
Daha sonra oluşturulan SQL dosyanızda TÜRKÇE dil hatalarına karşı 1-2 düzeltme daha yapmalıyız. Öncelikle database karşılaştırma (collation) ayarını latin5_turkish_ci ve tablolarımızın karşılaştırma (collation) ayarını da latin5 olarak tanımlamalıyız. Tablolarımızın bu dil ayarlarını pratik olması için sql üzerinden create işlemi yapılırken ENGINE=MyISAM DEFAULT CHARSET=latin5; cümlesini ekleyerek de yapabiliriz.
Şu durumda tüm verilerimiz mysql üzerine alınmış durumda ve bunlar üzerinde artık istediğimiz gibi sorgulama, silme, güncelleme yapabiliriz.
Her ihtimale karşı con.execute (“SET NAMES ‘latin5′”) işlemini DB bağlantınızı yaptıktan hemen sonra kullanırsanız ve sayfa content-type verinizi de <meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″> olarak tanımlarsanız. Artık MYSQL ile hiçbir sorununuz olmadan çalışmaya başlayabilirsiniz.