MySQL: characterset problémák
2009. March 30. - 14:37 | szerző: jonci

A MySQL telepítés után érdemes beállítani a characterset-eteket, hogy kiküszöböljük a későbbiekben felmerülő esetleges problémákat.

Telepítés utána ez fogad minket (kivágva a felesleget):

mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (x86_64) ... 5.2

Server version:         5.0.51a-21 (Debian)
Protocol version:       10
...
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
...
mysql>

Ez azért okoz gondot, mert az ékezetes sorba rendezés nem úgy működik ahogy kellene. Az ékezetes karaktereket a latin1 kódolás miatt érték szerint rakja be a sorba, nem pedig jelentésük szerint.

Módosítsuk a /etc/mysql/my.cnf fájlt az alábbiak szerint:

[client]
default-character-set   = utf8
...
[mysqld]
default-character-set   = utf8
character-set-server    = utf8
collation-server        = utf8_general_ci
...
[mysql]
default-character-set   = utf8
...

Miután a [mysql]-ben is megadtuk, így a [client]-ben nem kellene, de ajánlott. Valamint a collation-server is lehetne utf8_hungarian_ci, de az 5.0-ás sorozatban még hibás (5.1.5-ben jelezték, hogy korrigálták).

Indítsuk újra a MySQL-t:

root@bash# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables...
root@bash#

Majd csekkoljuk a MySQL-ben a 4db characterset állapotát:

mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (x86_64) ... 5.2

Server version:         5.0.51a-21 (Debian)
Protocol version:       10
...
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
...
mysql>

No így már minden stimmel, lehet feltölteni a DB-t és használni az ékezetes sorba rendezést. Igaz tartalmaz még egy hibát: egy ékezetes betű rövid és hosszú alakja alapesetben egyenlő a rendezés során, kivéve, ha a szó a többi betűjében megegyezik, mert akkor a rövid alak megelőzi a hosszú alakot:

Helyes sorrendek:
#1 Ádám, Alma, Ödön, Olga
#2 Alma, Álma

Más ékezet hiba nincs benne, de az összetett mássalhangzókat még rosszul kezeli, mint például: cs, dz, dzs, gy, ty, stb.

Email This Post Email This Post Print This Post Print This Post
 
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

1 válasz a “MySQL: characterset problémák” cikkhez

  1. gonzo says:

    thx a helpet!

    nagyon hasznos es jol ertelmezheto leirasaid vannak, elismeresem 😉

Szólj hozzá!