chat eczaonline.com yazılım uzmanı gaziantep web tasarım

Karakter sorunu

S

.SErKAn.

#1
Kendi dedicated makinamı aldım ve forum sitemi eski host şirketimden phpmyadmin kullanarak taşıdım yani yedeğini aldım. Aldığım yedekte tr karakterler bozuk olduğu için tr karakterleri editor bir programla açıp kendim elle düzelttim ve latin1 olan tablo charsetlerini de elle latin5 olarak düzelttim. .sql dosyam büyük olduğu için bigdump ile yeni sunucumda veritabanını yüklüyorum. Fakat; forumumda tr karakterler hala bozuk çıkıyor. Ne yapmalıyım?
 

selim61

Onaylı Üye
Katılım
10 May 2006
Mesajlar
5,301
Beğeniler
13
Konum
<?=selim61?>
#2
forum sistemi neydi acaba mesela phpnuke de tek mainfile.php den ayar yaparak düzeltebiliyorduk db de karakterler bozuk olsada.
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#3
yedekteki karakterlerin bozuk olduğuna aldanmayın, yedeği yüklerken charset kısmından tanıyıp doğru karakterlerle yüklüyor normalde, yani latin5 olarak elle değiştirmeniz yanlış bişey, bu tamamen elinizdeki yedeğin hasarlı olmasına yol açar.

eğer hala eski sunucudan yedek alabilme şansınız varsa:

--default-character-set=latin1 anahtarını ekleyerek alın, sizin veri tabanınız latin1 ile kodlanmış olduğu için latin1 olarak alacaksınız yedeklerinizi, sonra yeni sunucunuza yükleyin.

ayrıca imzamdaki linke tıklayarak sunucunuzdaki mysql türkçe ayarlarını yapın.

not: mümkünse yedek alırken ve yüklerken phpmyadmin kullanmamaya özen gösterin.
 
S

.SErKAn.

#4
Elimde eski hosttan alıp üzerinde hiç oynamadığım yedek hala duruyor. Yedeği ediyor ile açtığımda default charset latin1 gözüküyor ve karakterler de "Çünkü acý" gibi gözüküyor. Şimdi ben hiç dokunmadan bu .sql yi mi yüklemem gerek ve .sql dosyası 20mb olduğu için nasıl yüklücem? Bigdump ile yüklemem sorun olurmu? Ayrıca yüklemeden önce phpmyadminden açtığım database için ayar yapmam gerkeiyor mu?
 
Katılım
13 May 2005
Mesajlar
2,232
Beğeniler
3
Konum
istanbul
#5
bigdump la falan uğraşmayın sunucu sizinse ssh yok mu? phpmyadmnilede uğraşmayın yedeği alırken ve yüklerken ssh kullanın nokie nin imzasında nasıl yapacağınızla ilgili bir yazı var
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#6
şimdi karakterlerin bozuk görüntülenmesi, yedeği alırken karakter seti anahtarının belirtilmemesinden kaynaklanıyor, bildiğiniz gibi mysql yeni versiyonlarında artık varsayılan olarak UTF-8 kullanıyor bu nedenle karakter seti belirtilmeyen yedeklerde ö,ç,ü,ı vs. gibi garakterlerin yerine bozuk harfler çıkıyor.

Yedeğini yüklemen için 2 seçenek var;

1. mysqldump --default-character-set=latin1 -u veritabanı_kullanıcıadı -p veritabanıadı > /dizin/yedek.sql komutuyla eski host firmana yedek aldırıp, daha sonra bu yedeği yeni serverına aşağıdaki komutla yüklemek:

mysql --default-character-set=latin1 -u veritabanı_kullanıcıadı -p veritabanıadı < /dizin/yedek.sql

2. Şuan elindeki latin1 ile kodlanmış ve üzerinde elle değişiklik yapılmamış veri tabanını aşağıdaki komutla karakter seti belirtip yeni sunucuna yüklemek:

mysql --default-character-set=latin1 -u veritabanı_kullanıcıadı -p veritabanıadı < /dizin/yedek.sql

her iki seçenekte sorunsuz çalışacaktır.
 
S

.SErKAn.

#7
ben .sql dosyasını ftp de httpdocs klasörünün içine attım bu durumda;
mysql --default-character-set=latin1 -u veritabanı_kullanıcıadı -p veritabanıadı < /dizin/yedek.sql
komutundaki son kısmı nasıl ve neye göre değiştirmem gerek
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#8
ilk önce makinene ssh bağlantısı yapmalısın (putty), son kısmı yani:

/dizin/yedek.sql bölümünü dosyayı hangi klasöre attıysan o yolu yazıcaksın htdocs ise yani ana dizin şu şekilde yapmalısın:

/vhosts/kullanıcıadı/httpdocs/yedek_dosyan.sql

yada

/vhosts/domain.com/httpdocs/yedek_dosyan.sql

olması gerekli ikisinden biri.
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#9
bu arada şimdilik çıkmam gerekiyor eğer dosya yolunu bulmakta sıkıntı çekersen:

locate yedekdosyan.sql

komutu yardımıyla doğru dizin yolunu bulabilirsin.
 
S

.SErKAn.

#11
Dediğiniz şekilde,yani;
mysql --default-character-set=latin1 -u veritabanı_kullanıcıadı -p veritabanıadı < /dizin/yedek.sql
ile yedeği yükledim fakat tr karakterler hala bozuk

"Tüm 9nokta2 üyeleri aþaðýdaki kurallarý üye..."

Böyle cıkıyor..
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#12
hmm, sanırım senin yedeği yüklemek istediğin sunucunun mysql versiyonu 4.0.x serisi ? eğer öyleyse eski hostundan yedeği alırken

--compatible=mysql40 --default-character-set=latin1 anahtarıyla aldırman gerekiyor, çünkü 4.0x serisinde karakter setlerini kendi algılamıyor.
 
S

.SErKAn.

#13
eski hostta ki version 4.0 serisiydi evet fakat artık oraya giriş yetkim hiç bi şekilde yok. şuanki dedicated makinemde de 4.0 serisi var zaten. başka yapabileceğim birşey yokmu? Makalenizde anlattığınız türkçe karakter için gerekli ayarları da serverıma yaptım.
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#14
merhaba, makalemde anlattıklarım sadece mysql 4.1.x serisi içindi, yani 4.0x de karakter setleri olmadığı için o ayarlar çalışmayacaktır, yani şu aşamada hem eski hostun hemde makinen 4.0x serisi kullanıyorsa hiç bir problem olmaması gerekir.

yanlız anlayamadığım bir konu, ilk mesajınızda charsetleri elle latin5 olarak değiştirdim demiştiniz, yani charsetler sadece mysql 4.1.x sürümünde bulunur demekki eski hostunuz 4.1.x serisi kullanıyor?

Dediğim gibi:

--compatible=mysql40 --default-character-set=latin1

anahtarlarıyla eski hostunuzdan dump yedeği alırsanız probleminiz çözülecektir, elinizdeki yedeği alırken karakter seti varsayılan olarak UTF-8 tanımlandığından 4.0.x serisi bir makineye bunu yüklediğinizde yukarıda sizin yazdığınız gibi karakterler bozuk görünür. Ama yukarıdaki verdiğim anahtarlarla alınırsa karakterler düzelir ve bu yedeği yüklediğinizde problem olmaz.
 
S

.SErKAn.

#15
Pardon yanlış yazmışım. Eski sunucumda mysql versiyon 4.1.18 idi. Şimdiki sunucumda ise 4.1.19. Bu durumda sizin anlattıklarınıza göre tr karakterlerde sorun olmaması gerekiyor ama hala tr karakter sorunu yaşıyorum.
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#16
iki serverda 4.1.x ise sorun yok demektir, tek bir sorum var ozaman; veri tabanını doğru karakter setiyle oluşturdunmu? örnek:

CREATE DATABASE veritabanıadı CHARSET=latin1 COLLATE=latin1_swedish_ci; (senin veri tabanı latin1 olduğu için böyle yapıyoruz)

eğer oluşturmadıydan henüz bu şekilde oluşturup, yedeği bu oluşturduğun veri tabanına yüklemeyi dene bakalım.

not: aslında veritabanın latin1 olması baştan beri hata olmuş çünkü mysql yeni versiyonlarında bu karakakter olayında çok hassas.
 
Katılım
13 Eyl 2003
Mesajlar
0
Beğeniler
0
Yaş
36
#17
serkan adlı arkadaşım benim yerime yazıyordu. Ben sorunun asıl sahibiyim. Bu hesap üzerinden cevap vereceğim bundan sonra.Nokie dediğin herşeyi yaptım harfi harfiyen ve hiç bi şekilde düzelme olmadı :( 2 haftadır bu sorunla karşı karşıyayım. Bu yüzden 2 haftadır ziyaretçilerim siteye giremiyor ve feci durumda zarara uğramış durumdayım. Başka önerebileceğin çözüm var mı? Bu arada msn kullanıyorsan özelden atarsan çok sevinirim. Sevgiler..
 

nokie

Müptela
Katılım
23 Mar 2005
Mesajlar
1,597
Beğeniler
8
Yaş
35
Konum
İzmir
#18
merhaba, sErKAn'ın anlattığına göre çözüm olacak herşeyi yazdım fakat öyle sanıyorumki elinizdeki yedekte bir sorun var gibi, çünkü türkçe karakter olayında sadece karakterler yerine soru işaretleri çıkıyor sayfayı açınca örnek: ?? gibi.

yani karakterler sitede soru işareti çıkıyor, sizin sorunda ise karakterler bozuk görünüyor, bence eski hosttan aldığınız yedeklerden kaynaklanıyor.

Bu problem genelde 4.1.x serisinden aldığınız yedeği, mysql'un eski sürümüne mesela 4.0x serisine yüklerken olur.
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 1)

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır. Betcup Artemisbet Forum pulibet
Üst