![]() |
|
|
Инструкции, модификации и статьи для DLE Сборник инструкции, модов и статей по движку DataLife Engine |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |||
Коварный тип
![]() ![]()
|
![]() Конвертирование кодировки базы данных DLE средствами сервера по SSH
Иногда при использовании больших баз данных, например при размерах более одного гигабайта, конвертирование БД в ту или иную кодировку становится не возможным при использовании текстовых редакторов или PHP скриптов, в связи с их ограниченными возможностями. Для таких случаев прекрасно подходят достаточно быстрые операции с использованием SSH, о чем собственно и пойдет речь в данной статье. Итак рассмотрим как изменить кодировку базы данных для DLE прямо на сервере с использованием shell (SSH) на примере операционной системы CentOS 5. Если база данных очень большая, то для начала идем к файлу конфигурации MySQL сервера my.cnf и меняем в нем временно значение строк max_allowed_packet на большее. Т.е., например: PHP код:
PHP код:
PHP код:
1. Делаем дамп последней базы данных используя раздел админки "Управление базой данных". Дамп обычно имеет название что-то вроде 2012-03-16_02-10_user_base_55e2d753e9072ed783a2258bbf2d6106.sql.gz Распакуем его командой: PHP код:
PHP код:
PHP код:
3. Теперь у нас есть база данных в нужной нам кодировке windws-1251 и нам нужно выставить правильные DEFAULT CHARSET для всех таблиц. Делаем это командой: PHP код:
4. Теперь можно восстановить этот дамп, который уже полностью поддерживает кодировку windows-1251, и сразу создать новую базу данных (или указать существующую - таблицы будут перезаписаны) командой: PHP код:
Дополнительно... Если вы планируете установить новую базу данных на другом домене, то вы можете сразу сменить имя домена по всей базе данных на новое и затем восстановить базу данных. Пример такой замены: PHP код:
Примечание: Если у вас в процессе создания или восстановления базы данных возникают ошибки сервера, то это обычно связано с маленькими лимитами max_allowed_packet в my.cnf (увеличивайте на очень больших базах пока не пропадет ошибка) или с нехваткой времени выполнения скрипта (время увеличивайте в php.ini или через панель управления). Автор: ower_xz |
|||
![]() |