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

#php #mysql

#php #mysql

Вопрос:

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

Комментарии:

1. Я хочу загрузить файл с помощью PHP-скрипта из моей панели администратора

2. Следующая статья поможет создать резервную копию и загрузить базу данных mysql в формате sql или &z. Также может быть резервное копирование всей базы данных или определенных таблиц. http://faq.pctrickers.com/creatin&-mysql-database-backup-usin&-php

Ответ №1:

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

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

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

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

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

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

Комментарии:

1. Вы, естественно, также можете просто вывести содержимое строки и принудительно загрузить ее..

2. Здесь используются устаревшие mysql_* материалы. Если есть что-то более актуальное, я действительно хотел бы знать. Я не могу использовать phpMyAdmin.

3. Этот код не включает созданные вами ключи (внешние, составные), за исключением primary key.

Ответ №2:

 mysqldump -u username -p password database &&t; file
  

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

Комментарии:

1. Намного быстрее, чем phpMyAdmin, но требует доступа к командной строке. С другой стороны, PMA будет работать просто отлично, если у вас есть только веб-доступ.

2. Я хочу загрузить файл с помощью PHP-скрипта из моей панели администратора

Ответ №3:

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

Редактировать:

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

mysqldump -u база данных имени пользователя -p пароля &&t; файл

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

Комментарии:

1. Я хочу загрузить файл с помощью PHP-скрипта из моей панели администратора

Ответ №4:

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

Комментарии:

1. Я хочу загрузить файл с помощью PHP-скрипта из моей панели администратора

Ответ №5:

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

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

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

//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 &&t; ".$directory.$fileName;

        exec($backupFile,$output);

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

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

            echo 'Seleceted files';

    }
}


?&&t;
  

Ответ №6:

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

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