Локально я делаю это, чтобы сделать дамп и переместить базу данных, обновив silverstripe 2.3 до 2.4:
mysqldump --opt --default-character-set=latin1 --skip-set-charset --user=$root -p$password $oldDatabase -r db.sql
iconv -f LATIN1 -t UTF8 db.sql > db_utf.sql
CREATE DATABASE $newDatabase CHARACTER SET utf8 COLLATE utf8_swedish_ci; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON $newDatabase . * TO '$newUser'@'localhost'; FLUSH PRIVILEGES;
SET NAMES utf8; SOURCE db_utf.sql;
И это работает, но на сервере Ubuntu 8.04, с mysql Ver 14.12 Distrib 5.0 .51a. Я схожу с ума √ фрахтователи вместо øæåØÆå.
Кто-нибудь знает, где я ошибся?
Вы пробовали это без шага iconv
?
Вот что я использую при дампе баз данных UTF-8:
mysqldump \
-u $DB_USER -p"$DB_PASS" \
--default-character-set=Latin1 \
--result-file=$DATAFILE
И для восстановления:
mysql -u $DB_USER -p"$DB_PASS" \
--default-character-set=latin1 < $DATAFILE