in Eski Blog Yazılarım

MySQL Türkçe Karakter Problemi

MySQL’i RedHat’ten , Debian’a geçirirken karşılaştığımız ufak bir problem oldu.
MySQL’i UTF-8 olarak kullanan bazı web sitelerinde Türkçe karakter problemi yaşadık. Çoğu kullandığı script ile alakalıydı ama genel bir çözüm gerektiği için my.cnf’yi düzenlemeye koyulduk ve Türkçe karakter problemini burdan çözmeye çalıştık sonuç olarak skip-character-set-client-handshake parametresini keşfedip olayı çözdük.

my.cnf’de [myqld]’nin aldına skip-character-set-client-handshake olarak yerleştirin.

Klasik bir my.cnf örneği vermek gerekirse

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=latin5
default-collation=latin5_turkish_ci


[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
default-character-set=latin5
default-collation=latin5_turkish_ci

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
default-character-set=latin5
default-collation=latin5_turkish_ci

skip-external-locking
key_buffer = 300M
join_buffer = 4M
max_allowed_packet = 32M
table_cache = 1536
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 4M
thread_concurrency = 8
max_connections = 1500
query_cache_limit = 4M
query_cache_size = 128M
query_cache_type = 1
interactive_timeout = 100
connect_timeout = 10
wait_timeout = 200
server-id=1
thread_stack = 128K
thread_cache_size = 256
myisam-recover = BACKUP
expire_logs_days = 10
max_binlog_size = 100M
skip-bdb
old_passwords = 1
skip-character-set-client-handshake

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash
# faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

Bu arada PHP on Windows ile ilgili güzel bir içerik.
http://technet.microsoft.com/en-us/library/cc793139.aspx

Yorum Bırak

Comment