Перемещаем базы данных MySQL

http://www.linuxjournal.com/content/moving-databases

Moving Databases
Aug 15, 2011 By Shawn Powers in Databases MySQL

Недавно мне пришлось перемещать мой персональный веб-сайт на свой домашний сервер. Дома у меня соединение бизнес-уровня, а трафик, который генерирует сайт, сравнительно небольшой. Кроме того, имеется статический IP-адрес.

Перемещение файлов не составило никаких проблем - скачал по FTP, залил на домашний сервер по SFTP. Копирование же базы данных системы управления контентом немного отличается. Если имеется доступ к удаленной консоли сервера-источника, в ней набираем:


mysqldump -u username -p databasename > databasebackup.sql

СУБД спросит пароль, ассоциированный с "username", после чего создаст дамп базы, содержащий всю необходимую информацию. Следует, однако, иметь в виду, что перемещение между разными версиями серверов MySQL может вызвать проблемы. Это как раз тот случай, когда уместен флаг --compatible . Вы можете задать версию сервера, на который будете экспортировать базу и утилита mysqldump создаст (а на самом деле попытается создать) соответствующий файл дампа. Опции могут быть, например, mysql323, postgresql, mysql40, etc. Подробнее о них написано в странице man утилиты.

Для восстановления базы на новом сервере нужно просто сказать в его консоли:


mysql -u username -p newdatabasename < databasebackup.sql

где databasebackup.sql должен быть доступен на файловой системе, в данном случае, должен лежать в текущем каталоге. Если возникнут какие-то ошибки, следует, например, проверить значение опции --compatible или проделать какую-то другую работу в зависимости от ситуации. Если при этом на вашем старом сервере доступ уже прекращён, могут возникнуть трудности. Поэтому всегда имейте резервную копию, для чего настройте на сервере автобэкап, скажем, каждую неделю.

______________________

Shawn Powers is an Associate Editor for Linux Journal.




Комментарии читателей:

1. Если база имеет поля blob, я также добавляю опцию "--hex-blob" к команде. Еще ни разу не получилось восстановить копию без этой опции.

Ответ автора: без ответа.

2. Мне случалось перемещать базы с рабочего сервера на новый, причём необходимо было сохранить права доступа (привилегии) не только для пользователя root. Дамп для меня не очень подходит, так как боюсь потерять привилегии пользователей. Моё решение - копировать файлы базы, для чего я сохраняю всю папку БД с файлами mdy. Результат: всё работает. Отсюда вопрос, зачем мне дамп.

Ответ автора: Нет гарантии, что это заработает на другой версии сервера СУБД, или даже при наложении некоторых патчей.



Назад в тематический каталог
Назад на страницу переводов из Linux Journal