Shery és RePa

2008. január 31.
Ezen a napon, korábban: Goobuntu (2006), Earl Grey (2006), it keeps on havazing (2005)

mysql latin1 => utf8

dyuri @ 22:41:16

Ma erdekes problemaba utkoztem. Egyik django instanceomba probaltam ekezetes betuket bevinni (ez nalam altalaban a fejlesztesi szakasz leges legvegere marad :) ), aztan nem sikerult teljesen, egeszen a mysqltol jott a hibauzenet, hogy marpedig valami nem jo ('Data truncated').

Johat nezzuk mi lehet, debian szokashoz hiven a szerver, a kliens es miattuk a default parameterekkel letrehozott adatbazisok, tablak mind latin1 kodolasuak ('latin1_swedish_ci' collation mellett, barmi is legyen az). Erted, 2008, latin1. Johat, akkor valtoztassuk meg, my.cnf-be gyorsan:

[mysqld]
default-character-set = utf8
character-set-server = utf8
init-connect = 'SET NAMES utf8'

Meglevo adatbazist es tablakat az ALTER TABLE/DATABASE [akarmi] CHARACTER SET utf8 COLLATE utf8_general_ci paranccsal at is toltam, aztan azt hittem itt a boldogsag. De nem. A hiba szepen jott ezutan is.
Google fellapoz, hopp, megoldas az az, hogy kidobod az adatbazist a szemetbe, majd ujracsinalod, mikor mar minden utf8 barat. Ertem.

Szerencsere ez igazabol csak annyit jelentett nalam, hogy kidumpoltam az adatbazist, majd - mindenfele modositas nelkul - visszadumpoltam. Hiszen papiron mar a tablak is utf8 baratok voltak, csak igazibol nem:

# mysqldump adatbazis > adatbazis.sql
# mysql adatbazis < adatbazis.sql

Es most minden szepen mukodik.

Comments are closed.

Ez egy blog. A velemenyunk a mienk, ezert szubjektiv, es meglehet, hogy neha csak picit fedi az egyetemes igazsagot. Mellesleg akinek nem tetszik, az nezze helyette a tvt.

Egyebkent nyugodtan lehet idezni, kepeket toltogetni, szabadok vagyunk.

Ha esetleg valami szemelyes kozolnivalod van, amit nem szeretnel kommentbe leirni, akkor tobbek kozott elerhetsz minket a [akiacikketirta] kukac horak pont hu emailcimen.