Доброго времени суток! Сегодня мы вновь коснемся вопросов переезда с сервера на сервер и тех проблем, которые могут возникнуть в процессе этого.
Речь пойдет о переносе баз данных и о тех особенностях конфигурации серверов, которые могут «всплыть» при работе в phpMyAdmin.
Начну с лирического отступления. Когда я только начинал свою более-менее профессиональную деятельность в WEB-разработке, мне казалось логичным и единственно верным правило: новый сайт — это всегда новая база данных. Что же здесь непонятного? Все с чистого листа. Зачем тянуть за собой уже существующие таблицы данных? В ответ на это системный администратор, который входил в команду работающую над рядом интернет-проектов, всегда тяжело вздыхал, иногда сильно ругался и рассказывал о префиксах таблиц. В общем, выбить новую базу данных было тяжело. Почти невозможно. Меня это очень даже раздражало, раздражало до степени бешенства.
Не понимал я подхода администратора сервера ровно до того момента пока мне не пришлось столкнуть с переносом двух десятков сайтов с одного сервера на другой. При этом ряд интернет-ресурсов использовали сразу несколько баз данных. В общем, осознал и встал на путь исправления. Подход изменился. Теперь я группирую различные проекты по 3-5 базам данных, что значительно упрощает жизнь. Объем каждой базы данных больше, но количество самих баз — значительно меньше.
Сразу скажу, что значительный объем базы данных может быть вызван всего одним единственным интернет-ресурсом. С такой ситуацией сталкиваюсь часто и обязательно беру ее в расчет. Так в чем же могут возникнуть проблемы с переносом баз данных? Переходим к практической составляющей.
Как правило, именно таким бывает стандартное ограничение для импорта существующей базы данных.
Как вы уже могли догадаться, базу данных можно загнать в архив с расширением .gzip, .bzip2 или .zip, закрыв тем самым вопрос. Однако удается это далеко не всегда. Проще говоря, попытка архивации damp.sql, размеров в 100 МБ не принесет желаемого результата. Но мы попробуем, бегло проверив насколько возможно сжать базу тем или иным архиватором.
Немного экспериментальной части.
В нашем распоряжении бекап с расширением .sql размером ~100 МБ. Что же нам даст архивация?
Формат | Объем после сжатия |
---|---|
.gzip | ~18 МБ |
.bzip2 | ~ 13.5 МБ |
.zip | ~ 17.8 МБ |
Результаты были получены в десктопном архиваторе 7zip. Конфигурация стандартная.
Эксперимент завершен. Результаты сжатия замечательны, но недостаточны для решения поставленной задачи.
Примечание: увеличение уровня компрессии и прочие настройки могут дать более значительные результаты, однако для чистоты эксперимента мы рассматривали сугубо стандартные настройки.
Понимая, что задача не решается на уровне файла, приступим к решению на уровне сервера. Здесь есть как минимум два способа.
Первый, он же классический. Редактирование файла php.ini
, как правило, путь к файлу следующий: /etc/php5/apache2
.
Отредактировать данный файл можно как с помощью консоли, так и с помощью ISPmanager, либо любой другой панели управления.
Интересовать нас будут 2 параметра:
upload_max_filesize
— максимальный размер загружаемого файлаpost_max_size
— максимальный размер сообщения методом POST.Я установил оба параметра равным 200 МБ. Перезапускаем FPM (FastCGI Process Manager) командой service php5-fpm restart
. Кстати, сделать все тоже самое можно через интерфейс ISPmanager:
Готово. Размер импортируемого файла увеличен.
Редактируем файл /etc/phpmyadmin/config.inc.php
. Нас будет интересовать параметр $cfg['UploadDir']
. Здесь мы должны указать путь к папке, в которой расположены бекапы баз данных. Заглянем в Импорт phpMyAdmin, появился новый пункт:
Важно!
Не все йогурты одинаково полезны.Далеко не к каждой директории у phpMyAdmin есть права доступа!
Рекомендую использовать/usr/share/название_папки/
.
Готово. Можно импортировать.
Вот в общем-то и все. Желаю Вам успешных переездов и только надежных серверов. До новых встреч.
Спасибо, очень помог!
Отличная статья — информативная, полезная, подробная. Спасибо!
Жаль не помогло — мой хостинг урезал все возможности для самостоятельного редактирования
Shared-хостинг часто так делает. Статья написана на примере переезда на новый виртуальный сервер (VPS).
Благодарю, много лет боролся с проблемой загрузки БД, при переезде с сервера на сервер. Годных статей не находил. Твоя зашла на ура!