MySQL’i dump’i importimisel lähevad UTF8 tähed katki

Igipõline probleem (vähemalt minul oli sellega päris palju probleeme) – teed mysql-baasist dump’i, impordid selle teise serverisse ja utf8 tähed kõik katki. Varem oli see suund live -> arendus, nii et tegelikult ei tulnud sellest väga muretki, aega (loe: viitsimist) ei olnud uurida ka. Ent nüüd asi probleem käsile võetud, natuke Googeldatud ja katsetatud ning lahendus on tegelikult suhteliselt lihtne

olgu mysql confis kirjas
[mysqldump]
default-character-set=latin1

ja baasi enda collation latin1… kuigi tegelikult hoitakse seal utf8 datat.

Tegevus peaks nüüd välja nägema nii:

mysqldump -u<username> -p –skip-set-charset <database> > <database>.sql

target masinas tuleb baas maha kustutada ning uuesti luua õige collationiga

CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 COLLATE utf8_estonian_ci;

ja impordime andmed baasi öeldes et tegu on utf8 andmetega.

mysql -u<username> -p –default-character-set=utf8 <database> < <database>.sql

Alguses äratoodud conf on selles mõttes oluline, et kui latin1 asemel on näiteks ut8 siis tuleks dumpimisel kasutada võtit “–default-character-set=latin1” ning importimisel ei oleks character set’i vaja enam määrata.

Advertisements

Lisa kommentaar

Täida nõutavad väljad või kliki ikoonile, et sisse logida:

WordPress.com Logo

Sa kommenteerid kasutades oma WordPress.com kontot. Logi välja / Muuda )

Twitter picture

Sa kommenteerid kasutades oma Twitter kontot. Logi välja / Muuda )

Facebook photo

Sa kommenteerid kasutades oma Facebook kontot. Logi välja / Muuda )

Google+ photo

Sa kommenteerid kasutades oma Google+ kontot. Logi välja / Muuda )

Connecting to %s

%d bloggers like this: