Резервное копирование MySQL базы

Если есть доступ к shell, то возможно использовать команду которая импортирует sql скрипт в mysql базу:

mysqldump -uUSER -pPASSWORD -hlocalhost DATABASE > FILE

mysqldump опции:
USER - логин пользователя к базе данных
PASSWORD - пароль пользователя к базе данных
localhost - надо указать адрес сервера, если локальный тогда localhost
DATABASE - название базы данных
FILE - файл куда сохранить sql скрипт

Так же возможно запустить shell команду локально на сервере через php функцию shell_exec:

//импортировать sql файл с данными
shell_exec('mysql -uUSER -pPASSWORD -hlocalhost --default-character-set=utf8 --force DATABASE < FILE);

//сохранить данные в sql файл
shell_exec('mysqldump -uUSER -pPASSWORD -hlocalhost DATABASE > FILE);

Опция --default-character-set указывает кодировку файла по умолчанию, в примере будет utf8. Опция --force не останавливает импорт если произойдёт ошибка, например повторяющиеся значения для уникального поля.

Если sql дамп файл большой, то можно дополнительно увеличить ограничение времени действия php скрипта и сессии если используется добавив в начале скрипта:

//значение в секундах
ini_set('max_execution_time', '10000');
ini_set('session.gc_maxlifetime', '10000');

Если надо скопировать базу с одного сервера на другой и есть доступ к обоим серверам, то так же подойдёт mysqldump:

mysqldump -hSERVER1 -uUSER -pPASSWORD --opt DATABASE | mysql -hSERVER2 -uUSER -pPASSWORD -C DATABASE

Подробнее о mysqldump http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Алтернативный вариант для импорта больших дампов без доступа к shell использовать php скрипт bigdump, который импортирует частями.

Запись опубликована в рубрике Программирование с метками , , , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт защищен политикой конфиденциальности и условиями использования reCAPTCHA и Google.