Конвертируем базу MySQL из cp1251 в UTF-8

Категория: SQL , Администрирование , Веб-мастеру Комментариев: 6

Как быстро сконвертировать свою базу данных из кодировки cp1251 в utf8. Зачем это надо? А затем, что кодировка utf8 имеет большую гибкость по сравнению с cp1251.

Итак...
1. Создаем дамп базы MySQL в cp1251 коммандой:
mysqldump --opt -u имя_пользователя -pпароль имяБД > cp1251dump.sql

2. Конвертируем полученный дамп в utf8:
iconv -f cp1251 -t utf8 cp1251dump.sql > utf8dump.sql

3. Очищаем нащу базу данных. Для этого выполняем запросы:
DROP DATABASE имяБД;
CREATE DATABASE имяБД CHARACTER SET utf8 COLLATE utf8_general_ci;

4. Импортируем в базу наш сконвертированный в utf8 дамп:
mysql -u имя_пользователя -pпароль --default-character-set=utf8 имяБД < utf8dump.sql

5. Радуемся :D

Зы: спасибо товарищу Pilot34

Автор: Кто-то   @   10 января 2009 Комментариев: 6
Метки : ,

Поблагодарить автора

Webmoney Z163628999150, R617151845974

Комментариев: 6

Комментарии
Янв 10, 2009
15:33
#1 pilot34 :

Кстати это работает только если в базе в BLOB-ах не хранится текст

Автор Янв 10, 2009
21:53
#2 Кто-то :

Действительно.

Но имхо хранить в BLOB'е текст будет только извращенец.

Апр 20, 2009
11:15
#3 Moro :

Есть дамп cp1251dump.sql, нет доступа к консоли. Пожалуйста, выдайте решение ввиде PHP скрипта.

Автор Апр 20, 2009
19:58
#4 Кто-то :

Без проблем:

<?

$text = file_get_contents («cp1251dump.sql»);

$text = iconv («cp1251», «UTF-8», $text);

$f = fopen («utf8dump.sql»,"w");

fwrite ($txt,$f);

fclose ($f);

?>

Сен 21, 2010
14:31
#5 Ромыч :

Скажите, а в обратную сторону можно? из utf-8 в cp1251?

Автор Сен 22, 2010
21:12

Естественно

файл:

iconv -f utf8 -t cp1251 utf8dump.sql > cp1251dump.sql

база данных:

DROP DATABASE имяБД;

CREATE DATABASE имяБД CHARACTER SET cp1251 COLLATE cp1251_general_ci;

импорт:

mysql -u имя_пользователя -pпароль --default-character-set=cp1251 имяБД < utf8dump.sql

оставить комментарий

Предыдущая запись
«
Следующая запись
»