İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

MySQL 4.1.x ve Türkçe Karakter Sorununun Çözümü

disconnect

0
İyinet Üyesi
Onaylı Üye
Katılım
1 Şubat 2005
Mesajlar
3,367
Reaction score
5
Bende türkçe karakter sorunuyla karşılaşmıştım.
Yaptığım şey harici bir programla sql li hiç değiştirmeden ve hiçbir karakter setiyle oynamadan yüklemekti. Ve düzeldi.
Mysql-Front bunu kullanmamınızı öneririm. Hem hata ayıklamasıda yapmakta.
Hemde Türkçe bir program. Kullanmanızı tavsiye ederim.
 

ayantas

0
İyinet Üyesi
Katılım
19 Ekim 2005
Mesajlar
234
Reaction score
0
nokie' Alıntı:
Merhaba,

Sorunun çözüldümü bilmiyorum ama phpbb hakkında detaylı bilgim yok maalesef. Bunu phpbb resmi forumlarında ufak bir araştırma yaparak bulabilirsin sanıyorum.

Olmazsa uygun bir vakitte senin için araştırabilirim tabi sorunun halen çözülmediyse, bilgilendirirsen sevinirim.


İlgilendiğiniz için çok teşekkür ederim. Ben halen sorunu aşamadım. Müsait zamanınız da bakabilirseniz çok sevinirim.
 

ZiRVeDeKiLeR

0
İyinet Üyesi
Katılım
9 Şubat 2006
Mesajlar
516
Reaction score
0
Kod:
xxxxx:~ # mysql --default-character-set=latin5 -u webxx -p usr_webxx_1 < yedeks.sql
Enter password:
ERROR 1064 at line 21: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1' at line 6
xxxxx:~ #


Malesef konuda anlatilanlari yapmama ragmen yedegi geri yükleyemiyorum :(
 

leet

0
İyinet Üyesi
Katılım
6 Temmuz 2006
Mesajlar
602
Reaction score
0
nokie' Alıntı:
Merhaba,

Öncelikle yanıt geciktiği kusura bakmayın, bir süredir tatildeydim. latin1_swedish_ci karşılaştırmasında türkçe karakterler için sorun olmaz, sadece harf sıralamalarında türkçe harfler en sona atılır. Ancak bunu latin5 setine çevirdiğin için doğal olarak karakterler '?' olarak çıkar.

Bununla beraber latin1 bazı kullandığın php yazılımlarda büyük türkçe harflerde sorun çıkarabilir, sonuçta latin1 de türkçe karakter bulunmamaktadır.

Veritabanın başından beri latin1 ile kodlandığından bütünüyle latin5'e çevirmen çok sorun çıkarır.. dünüştürücüler mevcut ama pek sağlıklı değil açıkcası.

Tavsiyem bu veritabanını sorunsuz kullanabilmek için, öncelikle aşağıdaki gibi veritabanını oluştur:

Kod:
CREATE DATABASE veritabanıadı CHARSET=latin1 COLLATE=latin1_swedish_ci;

Bu oluşturduğun veritabanına latin1 karakter seti kullanan yedeğini import et, sorunsuz bir şekilde çalışacaktır.

not: daha önce sayfalarında charset iso-8859-9 kullanıyordu isen yine böyle kullanmalısın. Normalde latin1 => iso-8859-1 setine denk geliyor ama başından beri 8859-9 ile verilerin veritabanına girildiğinden buna ihtiyaç duyar.

sorunumu bu yöntemLe çözdüm. Allah razı oLsun ne diyeyim 2 saattir ne monitöre kafa atmadığım kaLdı ne modemin üzerine basmadığım :D
 

Ekshi

0
İyinet Üyesi
Katılım
23 Şubat 2006
Mesajlar
326
Reaction score
0
VBulletin kurulumunu gerçekleştirdim.

Bunlar;

latin5_bin (büyük, küçük harf duyarlı)

latin5_turkish_ci (büyük, küçük harf duyarsız)

karşılaştırmalarıdır, bizim tercihimiz herzaman latin5_turkish_ci karşılaştırması olmalıdır.

Bunuda yaptım fakat söylediğiniz gibi bazı karakterler "?" şeklinde çıkıyor.

Vbulletinde aşağıdaki önerdiğiniz kodu nereye koymam gerektiğini bilmiyorum.

Kendi sunucum yok reseller bayi kullanıyorum.

Bununda çözümü çok basit, mysql bağlantısı yaptığınız sorgu koduna aşağıdaki eklentiyi yapmanız yeterli;

mysql_query("SET NAMES 'latin5'");

Bu konuda yardımcı olursanız sevinirim.

iyinet bir vbulletin kullanıcısı olarak senden de yardım bekliyorum. İlginiz için şimdiden teşekkürler.
 

BrUnO

0
İyinet Üyesi
Katılım
4 Ağustos 2006
Mesajlar
0
Reaction score
0
Konum
İstanbul
Elimdeki my.cnf dosyası budur, bunu nasıl editleyecem yardım edermisiniz tr problemini çözebilmek için? Birkaç kez denedim mysql serveri patlatmaktan başka bişey yapamadım :D

Kod:
[mysqld]
init-connect="SET NAMES latin5"
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
     
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
Y

ysf

Misafir
BrUnO' Alıntı:
Elimdeki my.cnf dosyası budur, bunu nasıl editleyecem yardım edermisiniz tr problemini çözebilmek için? Birkaç kez denedim mysql serveri patlatmaktan başka bişey yapamadım :D

Kod:
[mysqld]
init-connect="SET NAMES latin5"
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
     
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


Konunun ilk mesajlarinda, ornek my.cnf optimizasyonu bulabilirsiniz. Ilk mesajları dikkatle okuyun.
basarilar
 

BrUnO

0
İyinet Üyesi
Katılım
4 Ağustos 2006
Mesajlar
0
Reaction score
0
Konum
İstanbul
Dünden beri okumaktan başka bişey yapamıyorum malesef, dosyamda [client] bölümü yok zaten.

Dosyamın son hali bu şekilde, işe yaramadı ? Hatam nedir?

Kod:
[mysqld]
init-connect='SET NAMES latin5'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
     
[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
default-character-set=latin5
default-collation=latin5_turkish_ci
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 

soundofvtec

0
İyinet Üyesi
Katılım
1 Şubat 2006
Mesajlar
826
Reaction score
0
Konum
hawaii
daha önceden açılmış veritabanlarını latin5 nasıl yapabilirim

işlemler bölümüne girdim ama "karşılaştırma" diye hiçbişi yok
 

CeNGaWeR

0
İyinet Üyesi
Katılım
18 Mayıs 2006
Mesajlar
49
Reaction score
0
peki bu anlattığınız olayı win. makinede nasıl gerçekleştirebiliriz ?
 

nokie

0
İyinet Üyesi
Katılım
23 Mart 2005
Mesajlar
1,597
Reaction score
8
Konum
İzmir
peki bu anlattığınız olayı win. makinede nasıl gerçekleştirebiliriz ?

win makinede my.ini dosyasında aşağıdaki değişikliği yapıp kaydet:

[mysqld] bölümüne altına:

init-connect="SET NAMES latin5"

satırını ekle.

Ayrıca, [mysqld_safe] ve [client] bölümlerinede aşağıdaki eklemeleri yap:

default-character-set=latin5
default-collation=latin5_turkish_ci

değişiklikleri yapıp kaydettikten sonra mysql sunucusuna reset at, değişiklikler aktif olur.
 

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.

Üst