[Sysadmins] Кодировка при переходе с mysql4 на mysql5
Nikolay A. Fetisov
=?iso-8859-1?q?naf_=CE=C1_naf=2Enet=2Eru?=
Чт Авг 7 20:01:55 MSD 2008
On Thu, 07 Aug 2008 19:45:02 +0400
Aleksey E. Birukov wrote:
> Есть файлы базы из /var/lib/mysql/db/host1248. База создавалась на mysql
> версии 4. Соответственно на версии 5. Проблема с кодировкой. Как можно
> ее решить?
Как обычно - понять, в чём проблема, и что нужно получить. Далее
определиться с нужными шагами.
В общем случае, надо получать dump надо в той же кодировке
(неправильной!), которая указана в базе. Иначе умный MySQL будет
выполнять неизвестно какие преобразования с непонятными последствиями.
Затем в полученном dump'е надо переправить _записи_ о кодировке таблиц
на правильные. Указать в заголовке dump'а правильный SET NAMES, и
залить всё обратно.
В частных случаях может потребоваться ещё править записи внутри dump'а,
если там вдруг окажутся недопустимые для кодировки символы.
> Я попробовал на 5-ой версии дамп сделать -- ошибка:
> mysqldump: Error 1194: Table 'sml_stat_hosts' is marked as crashed and
> should be repaired when dumping table `sml_stat_hosts` at row: 1746290
^^^^^^^^^^^^
Оно даже говорит, что надо сделать.
$ echo "repair table sml_stat_hosts extended;" | \
mysql -u root -p host1248
> Причем я пробовал эту таблицу починить через phpMyAdmin
А здесь может быть столько всего разного... Начиная, например, от
ограничений на время выполнения скрипта.
--
С уважением,
Николай Фетисов
Подробная информация о списке рассылки Sysadmins