howto:mysql-latin1-to-utf8
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
howto:mysql-latin1-to-utf8 [2018/01/16 18:29] – created Wulf Rajek | howto:mysql-latin1-to-utf8 [2023/05/29 11:55] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Convert latin1 MySQL db to utf8 ====== | ====== Convert latin1 MySQL db to utf8 ====== | ||
+ | Export db, change charset, convert and import again: | ||
< | < | ||
mysqldump -u username -p --add-drop-table database-name | replace CHARSET=latin1 CHARSET=utf8 | iconv -f latin1 -t utf8 | mysql -u username -p -D database-name | mysqldump -u username -p --add-drop-table database-name | replace CHARSET=latin1 CHARSET=utf8 | iconv -f latin1 -t utf8 | mysql -u username -p -D database-name | ||
+ | </ | ||
+ | |||
+ | Directly via mysql, note utf8 charset is not fully compatible with UTF-8, so better use utf8mb4: | ||
+ | < | ||
+ | #change default only | ||
+ | ALTER TABLE tablename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
+ | #convert charset of data | ||
+ | ALTER TABLE tablename convert to character set utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
+ | |||
+ | #changes for whole database | ||
+ | ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
+ | ALTER DATABASE databasename convert to character set utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
</ | </ | ||
Line 18: | Line 30: | ||
default_mimetype = " | default_mimetype = " | ||
default_charset = " | default_charset = " | ||
+ | </ | ||
+ | |||
+ | my.cnf should have: | ||
+ | < | ||
+ | [client] | ||
+ | default-character-set=utf8 | ||
+ | [myslqd] | ||
+ | skip-character-set-client-handshake | ||
+ | collation_server=utf8_unicode_ci | ||
+ | character_set_server = utf8 | ||
+ | </ | ||
+ | alternatively, | ||
+ | < | ||
+ | @mysql_query(" | ||
</ | </ |
howto/mysql-latin1-to-utf8.1516127342.txt.gz · Last modified: (external edit)