Резервное копирование базы данных mysql и загрузка в виде файла

Как создать резервную копию базы данных mysql и загрузить ее как .sql файл с помощью PHP-кодов

Ответ 1

Очень простым решением было бы что-то вроде (первый пример): http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

Естественно, это приведет только к дампу данных таблицы.

Что вы можете сделать, это использовать этот код:

http://snipplr.com/view/173/mysql-dump/

Что делает этот код, фактически получает описание таблицы (т.е. ее структуру), создает все таблицы и толкает данные. в значительной степени, как и любой другой инструмент.

Тогда это просто вопрос сохранения его из строки в файл (например, file_put_contents() или что-то подобное, в зависимости от ваших предпочтений и потребностей)

Ответ 2

mysqldump -u username -p password database > file

В качестве альтернативы phpMyAdmin также может сделать это с помощью инструмента "Экспорт".

Ответ 3

Используйте phpmyadmin

Edit:

Вы можете использовать shell_exec для выполнения этой команды

mysqldump -u username -p пароль базы данных > файл

Это создаст файл дампа, а затем перенаправит пользователя в этот сгенерированный файл.

Ответ 4

У вас есть phpmyadmin? Если это так, вы можете экспортировать его оттуда, нажав "Экспорт" вверху (на выбранной таблице/db).

Ответ 5

Я знаю его немного поздно, но надеюсь, что кто-то еще найдет это.

//php file - html code:
    require_once 'connect.php'; //holds database variables with connect details
    require_once 'Admin_DatabaseFiles_Backup.php'; //Include the admin logout script

<form action="" method="post" class="form form">
    <!--<input type="hidden" name="backup" value="1" />-->
    <div class="float_left w200">
        <p>
            <label class="title">Backup database</label>
            <span class="left">
              <input type="checkbox" name="db" value="1" checked="checked"/>
            </span>
        </p>
        <p>
            <label class="title">Backup files</label>
            <span class="left">
                <input type="checkbox" name="files" value="1" checked="checked" />
            </span>
        </p>
    </div>
    <p class="float_left">
        <input type="submit" name="submit" value="Backup" class="button" />
    </p>
</form>

//php file Admin_DatabaseFiles_Backup.php:
<?php


if ($_POST['submit']=="Backup"){

    if ($_POST['db'] == "1"){

        $directory = "DatabaseFileBackups/";
        $dateAndTime = "".date('d-m-Y-H-i-s');
        $fileName = "".$dbname.$dateAndTime.".sql";
        $backupFile = "mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost $dbname > ".$directory.$fileName;

        exec($backupFile,$output);

        if($output == ''){ 
            echo = '<br />Failed To Backup Database!';
        }else{
            echo = '<br />Database Backup Was Successful!';
        }
    }

    if ($_POST['files'] == "1"){

            echo 'Seleceted files';

    }
}


?>

Ответ 6

Если у вас есть phpMyAdmin, вы можете сделать это в меню "Экспорт".

Если вы ищете инструмент командной строки, посмотрите mysqldump.