IPBAccess: Veritabanını utf8'e convert etme - IPBAccess

İçeriğe git

Digg Del.ico.us Slashdot Technorati furl Reddit Facebook Fark Google Magnolia Wink Yahoo Netscape
Sayfa 1 de 1
  • Konu Açamazsınız
  • Cevap Yazamazsınız

Veritabanını utf8'e convert etme Çok kolay bir yöntem ile

#1 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

  Gönderilme Tarihi : 26.09.2009 - 11:49

IPB v3'e güncellemeler başladığından beri, yeni sistem olan UTF-8'e nasıl kolayca geçebileceğimizi arıyordum. Yeni kurulan forumlar UTF-8 olarak kuruluyor fakat 2.3.x ten yükseltilen forumlar ISO-8859-9 olarak kalıyordu. Bu da seo linklerinde sorun oluyordu. Ayrıca yeni sistem UTF-8 olduğu için yeni çıkan eklentiler vs de bu kodlama ie uygun olacak şekilde ayarlanıyor artık. Yani UTF-8 kullanmamız şart. :) UTF-8 e geçmek kolay değil maalesef. Bugüne kadar bulduğum bütün yöntemler uygulanan andan itibaren UTF-8 olarak kullanılanılabilecek bir sistem sağlıyordu. Mevcut içeriğimizde ise karakterler bozuk görünüyordu. Çözümü ise sql yedeğini bir editör içinde açıp karakterleri değiştirmekti. Büyük sql dosyalarında bu işlemi yapmak tam anlamıyla işkence! Ama anlatacağım bu yöntem ile işimiz çok kolay hale geliyor. :) Geçenler bu convert işini araştırırken bir rus sitesinde (sanırım Rusya'nın IPB destek sitesi) Sypex Dumper Lite diye bir sql yedeği alma scripti ile karşılaştım. Dediklerine göre çok hızlı yedek alıyomuş vs. Denemek için indiridm ve kurcalamaya başladım. Daha sonra fark ettim ki yedeğimizi yüklerken tabloların karakter setini değiştirebiliriyoruz. Daha sonra biraz daha derinlere inince sql dosyasını bile istediğimiz karakter setine uygun yazdırabiliyoruz. Ben de Türkçe'ye uygun bir kaç düzenleme yaptım. Artık yedek alırken hiç bir işlem yapmadan verilerimizi latin1 karakter setinden utf8 karakter setine çevirebiliyoruz. Scripti convert için uyarladım ve Rusça olan dilini becerebildiğim ölçüde Türkçe'ye çevirdim. Hala bazı hata cümleleri Rusça ama hatalarla karşılaşmayacağınızı umuyorum. Tabi anlattıklarımı eksiksiz yerine getirirseniz. Hikaye kısmını geçip anlatıma başlayabiliriz.

Öncelikle yedeklerinizi almayı sakın unutmayın!!! Tedbiri elden bırakmayın...

Şimdi convert işlemini gerçekleştirmek için ekte bulunan benim uyarladığım Sypex Dumper Lite scriptini indiriyoruz.
Dosya Ekle  dumper.php (37,13K)
İndirilme sayısı: 41
Daha sonra bu dosyayı sunucumuzun ana dizininine atıyoruz. Ayrıca dosyanın yanına backup adında bir klasör oluşturup CHMOD'u 777 olarak ayarlıyoruz.

-------------------------

Şimdi bu dosyaya http://domainadı/dumper.php yazarak ulaşıyoruz. (domainadı yerine kendi domaininizi yazıyorsunuz)
Karşımıza aşağıdaki gibi bir ekran çıkacak:
Dosya Ekle  giriş.JPG (26,05K)
İndirilme sayısı: 53
Buradan MYSQL kullanıcı adı ve şifrenizi ile giriş yapıyorsunuz.
Dosya Ekle  yedek alma.JPG (42,58K)
İndirilme sayısı: 55
Ekranda gördüğünüz sayfada Veritabanını seçiyoruz.
Eğer aynı veritabanında farklı sistemleri barındırıyorsanız. Sadece forum tablolarını seçmek için Filtre bölümüne ibf_ * (kendi tablo önekinize göre düzenleyin.) yazarak forum tablolarının seçilmesini sağlayabilirsiniz. Veritabanında sadece forum tabloları varsa bu bölümü atlayabilirsiniz.
Sıkıştırma Metodu ve Sıkıştırma oranı olduğu gibi kalsın onlar ile bir işimiz yok.
Tamam diyerek veritabının yedeğini alıyoruz. Yedek alınırken Bağlantı ve Tablo Karakter Seti Uyuşmuyor diye bir hata görünecektir. Bu hatayı önemsemeyin. Bu hatayı verirken convert işlemini gerçekleştirmiş oluyor. :)
Dosya Ekle  yoksayılacak hata.JPG (59,37K)
İndirilme sayısı: 66
Yedek alma işlemi bittiğinde aşağıdaki gibi sonuç verecektir.
Dosya Ekle  yedek bilgileri.JPG (58,06K)
İndirilme sayısı: 60
Burada veritabanı ve yedek dosyası ile ilgili bilgiler. Yedek alma sırasına tablo ve genel durumu gösteren barlar. Ve yedek alma işlemi bittiğinde alınan yedeği indirebilmeniz için bir bağlantı bulunur. Yedeği isterseniz indirebilirsiniz. Ama bizim onu indirmemize gerek yok. Geri diyerek önceki sayfaya geri dönüyoruz.
Burada yapacağımız işlem ise aldığımız yedeği veritabanımıza geri yüklemek.
Dosya Ekle  yedeği yükleme.JPG (43,46K)
İndirilme sayısı: 53
Resimdede gördüğünüz gibi alt kısımdan veritabanını ve yüklenecek dosyayı seçiyoruz. Bu dosya bizim az önce aldığımız yedek. Eğer birden fazla yedek aldıysanız dosyanın adındaki tarihe dikkat edin ve yüklemek istediğiniz dosyayı seçin.
Tamam diyerek yedeği yükleme işlemine başlayabilirsiniz. Tamam dedikten sonra sayfa yükleniyor gibi görünüp sonucu gösterebilir ve ya yükleme sayfasına geçerek işlem durumu ile beraber sonucu gösterebilir. Yükleme işlemi bittikten sonra aşağıdaki gibi bir sonuç alacaksınız.
Dosya Ekle  yükleme sonucu.JPG (51,18K)
İndirilme sayısı: 49
Yedeği yükleme SQL dosyasının büyüklüğüne göre biraz uzun sürebilir. Resimde de gördüğünüz gibi sol alt köşede ne kadar sürdüğünü gösteriyor.
Yüklemi işlemi bitince artık tablolarımız ve verilerimiz utf8 oldu. Bu sayfa ile işimiz bitti. İsterseniz direk kapatabilir, isterseniz Geri diyerek Çıkış butonu ie hesaptan çıkış yapabilirsiniz.

-------------------------

Eğer veritabanımız latin1 ise veritabanını utf8 yapmak için phpMyAdmin sayfasında veritabanımızı açıyoruz ve İşlemler kısmına tıklıyoruz.
Dosya Ekle  işlemler.JPG (25,97K)
İndirilme sayısı: 43
Burada alt kısımda bulunan Karşılaştırma bölümüne bakıyoruz.
Dosya Ekle  veritabanı karakter seti.JPG (11,7K)
İndirilme sayısı: 29
Bu bölümde eğer latin1 ile başlayan bir şey yazıyorsa listeden utf8_general_ci seçiyoruz ve Git diyoruz. Eğer utf8_general_ci yazıyorsa olduğu gibi bırakıyoruz.

Artık veritabımız da utf8

-------------------------

Foruma giderek:

IPB 3.x için ACP>System Settings>System>Server Environment:
Document Character Set = UTF-8
olarak ayarlayarak kaydediyoruz.
Eğer conf_global.php dosyasında
$INFO['sql_charset']			=	'utf8';

satırı yoksa ekliyoruz. Varsa değerini utf8 olarak ayarlayıp kaydediyoruz.

IPB 2.3.x için ACP>TOOLS & SETTINGS>General Configuration:
Document character set = UTF-8
olarak ayarlayıp kaydediyoruz.

Artık forumumuzu gönül rahatlığıyla UTF-8 olarak kullanabiliriz. :)
7

#2 Kullanıcı sistemde değil   YaRGıÇ 

  • Kıdemli Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 43
  • Kayıt tarihi: 11.08.2009
  • IPB:3.1.x

Gönderilme Tarihi : 26.09.2009 - 13:39

Yaklaşık 1 aydır kullanıyorum dumperi ve çok memnunum. Tavsiye ederim arkadaşlar, yedek alma, sürüm yükseltme her türlü işlemi dumper aracılığı ile yapabiliyorsunuz. Plesk olayını ortadan kaldıyorsunuz anlayacağınız...
0

#3 Kullanıcı sistemde değil   BLTYNR 

  • IPB-User
  • PipPipPipPipPip
  • Grubu: Üye
  • İletiler: 381
  • Kayıt tarihi: 16.08.2009
  • Konum:Hollanda
  • IPB:3.1.x

Gönderilme Tarihi : 26.09.2009 - 18:26

Güzel bir anlatım, umarım birçok kişi için faydalı olur.
Ben yedek almayıda geri yüklemeyide SSH ile yapıyorum, toplam 3 saniye sürüyor :D
Türküler Sevdamızdır, Sevdamızı Paylaşıyoruz

Turkulerdiyari.com
0

#4 Kullanıcı sistemde değil   Antes 

  • Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 36
  • Kayıt tarihi: 15.03.2009
  • Konum:Izmir 4ever
  • IPB:Belirsiz

Gönderilme Tarihi : 26.09.2009 - 22:40

Konuyu biraz açayım
Bunu kullandığımda
$INFO['sql_charset']                    =       'UTF-8';

Bu Hatayı
There appears to be an error with the database.
If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again. 

You can try to refresh the page by clicking here

Bunu kullandığımda
$INFO['sql_charset']                    =       'utf8';

Bu Hatayı
Fatal error: Uncaught exception 'Exception' with message 'Could not initiate the registry, the settings cache is empty or missing' in C:\AppServ\www\admin\sources\base\ipsRegistry.php:1631 Stack trace: #0 C:\AppServ\www\admin\sources\base\ipsRegistry.php(498): ipsRegistry->setUpSettings() #1 C:\AppServ\www\admin\sources\base\ipsController.php(75): ipsRegistry::init() #2 C:\AppServ\www\admin\sources\base\ipsController.php(62): ipsController->init() #3 C:\AppServ\www\index.php(24): ipsController::run() #4 {main} thrown in C:\AppServ\www\admin\sources\base\ipsRegistry.php on line 1631


Alıyorum ... şimdi 2.si UTF-8 yazmadığım için çıkıyo onu anladım ama ... UTF-8 yazınca neden db hatası veriyo onu çözemedim daha ...
0

#5 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

Gönderilme Tarihi : 27.09.2009 - 12:39

Maalesef bu hata ile ben de çok karşılaşıyorum. Genelde 3.0.2 sürümü yapıyordu. Dün 3.0.3 sürümü de yaptı. Bunu düzeltmek için. conf_global.php ye o satırı ekleyin. Daha sonra ibf_upgrade_history tablosunda sürüm bilgilerini bulacaksınız. Burada en son core güncellemesini silin. Mesela sürümünüz 3.0.2 ise 3.0.2 numaralı core verisini silin. Daha sonra forumu yeniden upgrade edin düzeliyor. Cache ile ilgili bir sorun oluyor sanırım cacheleri yeniden yazma yöntemi olarak da sadece bunu bulabildim.

Yanlız database ile çalışırken dikkatli olun!!
0

#6 Kullanıcı sistemde değil   Antes 

  • Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 36
  • Kayıt tarihi: 15.03.2009
  • Konum:Izmir 4ever
  • IPB:Belirsiz

Gönderilme Tarihi : 27.09.2009 - 18:15

İleti görüntüleARieS, 27.09.2009 - 12:39 tarihinde yazdı.

Maalesef bu hata ile ben de çok karşılaşıyorum. Genelde 3.0.2 sürümü yapıyordu. Dün 3.0.3 sürümü de yaptı. Bunu düzeltmek için. conf_global.php ye o satırı ekleyin. Daha sonra ibf_upgrade_history tablosunda sürüm bilgilerini bulacaksınız. Burada en son core güncellemesini silin. Mesela sürümünüz 3.0.2 ise 3.0.2 numaralı core verisini silin. Daha sonra forumu yeniden upgrade edin düzeliyor. Cache ile ilgili bir sorun oluyor sanırım cacheleri yeniden yazma yöntemi olarak da sadece bunu bulabildim.

Yanlız database ile çalışırken dikkatli olun!!


conf_global.php 'de bu satır ekli sürüm 3.0.2 ( 3.0.3 'e geçiş yapmadım localde ) , zaten localde çalışıyorum sadece direkt site üstünden çalışmam :) , uyarılarınız ve yorumunuz için çok tşk ederim
0

#7 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

Gönderilme Tarihi : 28.09.2009 - 11:32

$INFO['sql_charset']                    =       'utf8';


eklemeniz gereken satır bu. Diğerinin hata vermesi normal. :)

Şimdi dikkatimi çekti. Dün sadece hatalara bakmıştım.
0

#8 Kullanıcı sistemde değil   Antes 

  • Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 36
  • Kayıt tarihi: 15.03.2009
  • Konum:Izmir 4ever
  • IPB:Belirsiz

Gönderilme Tarihi : 28.09.2009 - 20:28

İleti görüntüleARieS, 28.09.2009 - 11:32 tarihinde yazdı.

$INFO['sql_charset']                    =       'utf8';


eklemeniz gereken satır bu. Diğerinin hata vermesi normal. :)

Şimdi dikkatimi çekti. Dün sadece hatalara bakmıştım.


Fatal error: Uncaught exception 'Exception' with message 'Could not initiate the registry, the settings cache is empty or missing' in C:\AppServ\www\admin\sources\base\ipsRegistry.php:1631 Stack trace: #0 C:\AppServ\www\admin\sources\base\ipsRegistry.php(498): ipsRegistry->setUpSettings() #1 C:\AppServ\www\admin\sources\base\ipsController.php(75): ipsRegistry::init() #2 C:\AppServ\www\admin\sources\base\ipsController.php(62): ipsController->init() #3 C:\AppServ\www\index.php(24): ipsController::run() #4 {main} thrown in C:\AppServ\www\admin\sources\base\ipsRegistry.php on line 1631
0

#9 Kullanıcı sistemde değil   uggur 

  • Kıdemli
  • PipPipPip
  • Grubu: Üye
  • İletiler: 544
  • Kayıt tarihi: 20.06.2006
  • Konum:İzmir
  • IPB:3.0.x

Gönderilme Tarihi : 29.09.2009 - 21:37

Oh be sonunda çevirdim :) Sağol ARieS :)
Kişisel Projelerim:
-l Linkler l Aphrodisias l Ip Adres l seo yarışması l Mynak l Cinsel Sağlık l linkler l-
0

#10 Kullanıcı sistemde değil   rea-secret 

  • Kıdemli Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 74
  • Kayıt tarihi: 22.09.2007
  • Konum:Kayseri
  • IPB:3.0.x

Gönderilme Tarihi : 08.10.2009 - 16:14

Aldığım yedeği geri yüklerken ibf_posts tablosunda uzun süre bekliyor ve takılıyor, devam etmiyor. Doğal olarak mesajlar vs. yüklenemediği için sistem IPS Drive Error veriyor. Bu sorunu aşabilir miyiz acaba? :(

Ek: Mysqldumper ile zor da olsa yedeği yükledim ama karakterlerde sorun var. ı,ş,ğ,İ,Ş,Ğ harfleri ? şeklinde görünüyor. Dumper ile tekrar yedek almak istediğimde aşağıdaki hatayı alıyorum:

Bağlantı ve Tablo Karakter Seti Uyuşmuyor:
Tablo `ibf_acp_help` -> latin1 (Bağlantı -> utf8)
İşlenen Tablo `ibf_acp_help` [184].
2009.10.09 01:53:44
HATA OLUŞTU!
Division by zero (2)


Tüm veritabanındaki bozuk karakterleri tek tek mi güncellemem gerekiyor yoksa? :blink:
0

#11 Kullanıcı sistemde değil   rea-secret 

  • Kıdemli Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 74
  • Kayıt tarihi: 22.09.2007
  • Konum:Kayseri
  • IPB:3.0.x

Gönderilme Tarihi : 09.10.2009 - 15:43

Haftalık yedeği yükletmek zorunda kaldım. Şu anda ise veritabanı yedeğini "alamıyorum". Ne Mysqldumper, ne de dumper işe yarıyor.

Dumper.php ile yedek almak istediğimde şu hatayı alıyorum yine:
Bağlantı ve Tablo Karakter Seti Uyuşmuyor:
Tablo `ibf_acp_help` -> latin1 (Bağlantı -> utf8)
İşlenen Tablo `ibf_acp_help` [184].
2009.10.09 01:53:44
HATA OLUŞTU!
Division by zero (2)


Mysqldumper ile yedek almak istediğimde ise:

Access denied for user 'XXX'@'localhost' (using password: NO)


Database connection error: 


Hatasını alıyorum. Halbuki Mysqldumper config dosyasında veritabanı adı, kullanıcı adı ve şifre doğru görünüyor. Dün gece sorunsuz çalışan şeyler bugün çalışmaz oldu. Kafayı yemek üzereyim vallahi. phpMyAdmin dışında, parçalar halinde nasıl yedek alabilirim? :mellow:
0

#12 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

Gönderilme Tarihi : 09.10.2009 - 18:21

Takıldığından emin misiniz? posts tablosunda mesajlar olduğu için uzun sürer. O tablo yüklenirken sabırlı olmanız gerekiyor.

Eski yedeğinizi yüklerken de benim verdiğim dumper.php yi kullanmayın. Onun içindeki ayarlar sadece onunla aldığınız yedekleri utf8 e convert etmek için geçerli.
0

#13 Kullanıcı sistemde değil   Antes 

  • Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 36
  • Kayıt tarihi: 15.03.2009
  • Konum:Izmir 4ever
  • IPB:Belirsiz

Gönderilme Tarihi : 10.10.2009 - 13:29

Öncelikle 3.0.2'den kaynaklanan bazı sorunlar varmış ... Forum'u 3.0.4 'e geçirip öyle dumper 'ı yapınca , bir çok şey düzeldi :)

ğ , ı , ş > bu 3 harf 'ten yana sorun yaşıyorum sadece :) , hepsi ? olarak çıktığı için db'den düzeltme yapamıyorum , bu konuda bi önerin var mı ?
0

#14 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

Gönderilme Tarihi : 10.10.2009 - 14:58

Databesi normal şekilde indirip herhangi bir editörle düzenlemeyi dene.
0

#15 Kullanıcı sistemde değil   Antes 

  • Üye
  • PipPipPip
  • Grubu: Üye
  • İletiler: 36
  • Kayıt tarihi: 15.03.2009
  • Konum:Izmir 4ever
  • IPB:Belirsiz

Gönderilme Tarihi : 10.10.2009 - 16:19

İleti görüntüleARieS, 10.10.2009 - 14:58 tarihinde yazdı.

Databesi normal şekilde indirip herhangi bir editörle düzenlemeyi dene.


anladım teşekkür ederim :( , 50.000 satırı tek tek elden geçirecem desene :)
0

#16 Kullanıcı sistemde değil   Blade 

  • Yasaklı
  • Pip
  • Grubu: Yasaklı
  • İletiler: 1
  • Kayıt tarihi: 15.01.2009
  • IPB:2.3.x

Gönderilme Tarihi : 02.11.2009 - 12:25

ARieS anlatım mükemmel olmuş öncelikle teşekkür ederim..

Ben 2.3.6 kullanmaktayım recent topics ve ajax fast reply modüllerinde Türkçe karakter hataları oluşmakta... Senin yönteminle utf8 yaparak bu sorunu çözebilirmiyim?

Not: Recent Topics de charset=iso-8859-9 kodunu yerleştirince ajax otomatik olarak devre dışı kalıyor. Bu yüzden Türkçe karakter sorununu bu yöntemle çözebilirmiyim sormak istedim..
0

#17 Kullanıcı sistemde değil   ARieS 

  • Admin
  • Grubu: Admin
  • İletiler: 1.720
  • Kayıt tarihi: 29.01.2009
  • Konum:Mersin
  • IPB:3.0.x

Gönderilme Tarihi : 02.11.2009 - 22:27

O modları hiç denemedim. Localde deneme şansınız varsa deneyip görebilirisiniz. :) Sanırım çözülmesi lazım. Sonuçta db yi tamamen utf8 yapıyoruz.
0

Konuyu paylaş


Sayfa 1 de 1
  • Konu Açamazsınız
  • Cevap Yazamazsınız


Benzer Konular
  Konu Başlatan Durum Son İleti Bilgisi
Benzer konu bulunmuyor

1 Kullanıcı konuyu okuyor
0 Kullanıcı, 1 Misafir, 0 Kayıtsız kullanıcı

Zafer-Ticaret | BilgiVadisi | Bizim Forumlar | bursa-Linux | Web Listele | Eski Dünya | zbahadir | Teknik Forumlar | Eprom-Elektronik | Teknik Terimler | Bursa Posta | iyinet frmtr trkygnclr webmaster seo yarışması