Создание дампа БД и выполнение дампа из файла через консоль.
homestead
secret
work_db_name
dump.sql
Выполнение дампа для параметров, указанных выше:
mysql -u homestead -psecret work_db_name < dump.sql
Если команда выполняется на рабочем сервере, чтобы не сохранять пароль в истории команд, просто вводится ключ -p
, вместо -psecret
, указанного в команде выше. В качестве альтернативы можно поставить пробел перед командой, тогда в истории команд данная команда не сохранится.
Создание дампа в .gz архиве
mysqldump -u homestead -psecret work_db_name | gzip -9 > dump.sql.gz
<?php
$user = 'homestead';
$password = 'secret';
$db = 'homestead';
$file = 'dump.sql.gz';
$command = sprintf(
'mysqldump -u %s -p\'%s\' %s | gzip -9 > dump.sql.gz',
$user,
$password,
$db,
$file
);
if (!empty($_GET['delete_dump'])) {
unlink(dirname(__FILE__) . '/' . $file);
echo 'Файл дампа удален';
exit();
}
exec($command);
echo sprintf('<a href="%s" target="_blank">Скачать</a><br />', $file);
echo sprintf('<a href="%s?delete_dump=1">Удалить дамп</a><br />', basename(__FILE__));