[Sysadmins] Кодировка при переходе с mysql4 на mysql5

Aleksey E. Birukov =?iso-8859-1?q?birukov_=CE=C1_vladinfo=2Eru?=
Пт Авг 8 00:39:05 MSD 2008


Aleksey E. Birukov пишет:
> Есть файлы базы из /var/lib/mysql/db/host1248. База создавалась на 
> mysql версии 4. Соответственно на версии 5. Проблема с кодировкой. Как 
> можно ее решить?
>
> На одном сервере я добавлял init-connect='SET NAMES cp1251' в my.cnf а 
> потом заливал дамп, сделанный на 4-ой версии.
>
> Есть ли более оптимальный способ?
mysqldump --add-drop-table -uhost1420 -p host1420|sed 
's/CHARSET=utf8/CHARSET=cp1251/'|sed 's/SET NAMES utf8/SET NAMES 
cp1251/'|mysql -utest -p test

Если вылезают ошибки:
ERROR 1067 (42000) at line 608: Invalid default value for 'lang'
mysqldump: Got errno 32 on write

Разыскиваем их вот так:
# mysqldump --add-drop-table -uhost1420 -p host1420|sed '608q;d'
и решаем по обстоятельствам.

Такое решается через |OPTIMIZE TABLЕ|
(можно через phpMyAdmin)
mysqldump: Error 1194: Table 'sml_stat_hosts' is marked as crashed and 
should be repaired when dumping table `sml_stat_hosts` at row: 1746290

Может вылезти и такое. База больше 2Гб -- может поэтому. Как решать не 
разбирался.
mysqldump: Error 2013: Lost connection to MySQL server during query when 
dumping table `sml_stat_hosts` at row: 9537

Вроде все получилось. Ужас, конечно :)



Подробная информация о списке рассылки Sysadmins