Современные решения ИТ задач и программной инженерии

Заливаем дамп базы данных средствами MySQL сервера

10.07.2015 в разделах Базы данныхАдминистрированиес тегами mysqlsshfreebsd
Заливаем дамп базы данных средствами MySQL сервера
Буквально вчера мы рассматривали как сделать дамп базы данных средствами MySQL сервера. Давайте теперь зальем созданный дамп обратно в MySQL сервер.

На самом деле все очень просто, не сложнее чем сделать дамп. Опять же, у вас должен быть доступ к серверу по SSH, созданная база данных с логином и паролем а так же сам файл с дампом. Давайте немного напомним для чего это все нужно и почему не воспользоваться например таким инструментом как PhpMyAdmin?

Например если файл дампа базы данных MySQL сервера очен большой то не стоит использовать не PhpMyAdmin не какую то еще утилиту по работе с MySQL сервером. Таким образом вы просто будете заливать дамп очень долго да и не совсем корректно, целостность данных может быть нарушена.

Еще почему не стоит заливать дамп всякими утилитами, это потому что если например у вас в базе данных хранятся так же и файлы, то есть шанс испортить данные. А вот например использования самого сервера это другое дело. Сервер с ним работает как с файлом и не более, он не тратить время на передачу данных от утилиты к серверу а так же обрабатывается без конвертации содержимого в различные кодировки (спорно но иногда бывает, бывает что мы открыли файл дампа в текстовом редакторе и заменили пару строк под свои нужды, сохранили и редактор сохранил так как умеет и вот тут начинается веселье). Вообщем самый лучший вариант не найти чем залить файл дампа средствами самого MySQL сервера, при условии конечно же что у вас есть прямой доступ к MySQL серверу.

Еще одно отличие от предыдущего способа это то что мы ранее использовали утилиту mysqldump а сейчас будем использовать mysql5, которая по умолчанию находится /opt/local/bin/mysql5. Итак приступим к практике.

Припустим у вас есть доступ к серверу по SSH, логин базы данных: root, пароль: test, база данных: baza и файл дампа с именем dump.sql. Тогда команда для дампа будет выглядеть так:

mysql5 -u root -ptest baza < dump.sql

Все очень просто, выполняем команду и ждем. От размера файла дампа базы данных будет зависит время импорта. Выполнив данную процедуру импорта, можно быть уверенным что все закончиться хорошо и без сюрпризов.

Можно еще добавить что при таком сочетании импорта и экспорта можно сочинять хорошие bash скрипты для автоматического бекапа и восстановления, только фантазия может ограничить.

Например можно написать скрипт, который будет по планировщику заданий crontab будет запускать 1 или 2 раза в неделю наш bash скрипт, который будет делать бекап нашей базы данных и хранить это все для дальнейшей передачи файла в хранилище бекапа.