[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