mysql latin1 => utf8
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.

