MySql yedeğini başka sunucuya taşımada Türkçe Karakter Sorunu

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,535
Excel Vers. ve Dili
Excel 2010 - Türkçe
Merhaba Arkadaşlar,
Saatlerce internette araştırdım, ancak aşağıda açıklayacağım yolu hiç bir kaynakta bulamadım.
O yüzden belki benimle aynı sıkıntıyı yaşayan arkadaşlar olur diye paylaşmak istedim.

Sorun : Bir sunucudan aldığım yedeği başka sunucuya yüklediğimde Türkçe karakterlerin yerinde ? çıkıyor.

"Denize atlamadan yüzme öğrenilmez" sözü kendini yine ıspatladı.
Ben MySql ile uğraşıyorum, fakat bu sorunu yaşamadan önce bu çözümü bilmiyordum.

Forumumuz saldırıya uğramadan önceki sunucumuzda MySql sürüm 4 çalışıyordu.
Oradan aldığımız MySql Dump dosyamız elimdeydi.
Saldırı sonrası geçtiğimiz sunucuda (artık olması gerektiği gibi) MySql 5 çalışıyor.

Elimdeki yedek dosyasını kendi bilgisayarımda kontrol ettiğimde Türkçe karakterleri görüyorum.
Dosyayı FTP ile yeni sunucuya yükledim ve yedeği bilinen yöntem ile veritabanına yükledim.
Kontrol ettiğimde hayal kırıklığı;
Tüm Türkçe karakterlerin yerine ? karakteri çıkıyor.
Yalan olmasın, sanırım 24 saat (kesintisiz değil tabii) denemeler yapıp çözüm aradım. Ayrıca internette de çeşitli araştırmalar yaptım.
Bulduğum bir kaç öneride işe yaramadı.


Deneme yanılma yöntemi ile aşağıdaki sonucu buldum.
  1. Elimdeki yedek dosyasını "EditPlus 2" adındaki text editörü ile açtım.
  2. Dosyayı "UTF-8" biçimli olarak kaydettim. (UTF-8 olarak kaydetme özelliği her text editöründe yok, o yüzden özellikle araştırın)
  3. Dosyayı ftp ile sunucuya yükledim.
  4. Sunucuya SSH ile bağlandım.
  5. Standart komut olan:
    mysql -u kullanıcıadı -p veritabanıadı < yedekdosya.sql
    yerine şu şekilde bir komut çalıştırdım:
    mysql -u kullanıcıadı -p --default-character-set=utf8 veritabanıadı < yedekdosya.sql
Böylelikle vertabanımdaki çşğİı gibi Türkçe karkaterler normal görünmeye başladı.
Yukarıdaki anlatım ile ne kadar kolay görünüyor, oysa bunu bulana kadar yaşadığım sıkıntıyı tarif edemem.

Umarım birilerine faydası olur.

----------------------------
Not: "Ya bu çözüm internette çok yerde var." diyenler çıkacaktır.
Bunu aramam gerektiğini bilmediğim için bulamadım.
Yöntemi bulduktan sonra araştırma yaptığımda gerçekten bunun bazı yerlerde anlatıldığını gördüm.
 
Katılım
22 Nisan 2005
Mesajlar
486
Excel Vers. ve Dili
tarkan@tarkanvural.com.tr
MySQL

UTF-8 tespitiniz ile ilgili tebrik ediyorum Hüseyin bey.
Bu çözüm benim de çok işime yarayacak. ;)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Merhaba Hüseyin Bey,

Bende tecrübe olsun diye geçen sene bedava bir host üzerinde SMF forum kurmuştum. Forum bir müddet süre sonra kapandı, bizim forum kapalı olduğu sürece meşguliyet olsun diye tekrar yeni bir forum kurdum, eski forumun elimde olan yedeğini tesadüf buldum. Ordaki sql komutlarından

Kod:
CREATE TABLE `smf_admin_info_files` (
  id_file tinyint(4) unsigned NOT NULL auto_increment,
  filename tinytext NOT NULL,
  path tinytext NOT NULL,
  parameters tinytext NOT NULL,
  data text NOT NULL,
  filetype tinytext NOT NULL,
  PRIMARY KEY (id_file),
  KEY filename (filename(30))
) TYPE=MyISAM;
gibi sorgulardaki bütün
Kod:
TYPE=MyISAM
kısımlarını notepad de
Kod:
TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_turkish_ci;
şeklinde değiştirdim. Sonuç başarılı oldu, isterseniz bir deneme de siz yapın.
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,535
Excel Vers. ve Dili
Excel 2010 - Türkçe
Sayın veyselemre,
önerdiğiniz yolu da denedim.
Ancak sanırım siz MySql 4e yükleme yaptınız.
MySql5 te onu dikkate almadı. (en azından bende)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Sayın veyselemre,
önerdiğiniz yolu da denedim.
Ancak sanırım siz MySql 4e yükleme yaptınız.
MySql5 te onu dikkate almadı. (en azından bende)
Ben hiç anlamam bu sql işlerinden ama, bugün tekrar localhosta wamp server kurdum (mysql versiyonu (5.0.51b)). Tekrar yedekten yükledim, hiç sorun çıkmadı.

Sizin sql yedek dosyanızdan ufak bir kısmını atarsanız, bende denemek isterim.
 
Üst