2015-11-09 2 views
0

Как я могу создать файл SQL с PHP, который содержит SQL-скрипт для создания точной копии всей моей базы данных. Как я могу сделать это в PhpMyAdmin.Как сделать резервную копию базы данных SQL с помощью PHP

Например:

У меня есть база данных с несколькими Tabel, и я хотел бы PHP скрипт для возвращать SQL скрипт, как:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 
SET time_zone = "+00:00"; 

-- 
-- Database: `first_db` 
-- 

-- -------------------------------------------------------- 

-- 
-- Structure of table `my_table` 
-- 

CREATE TABLE IF NOT EXISTS `my_table` (
    `id` int(11) NOT NULL, 
    `naslov` text COLLATE utf8_slovenian_ci NOT NULL, 
    `besedilo` text COLLATE utf8_slovenian_ci NOT NULL, 
    `datum` text COLLATE utf8_slovenian_ci NOT NULL, 
    `avtor` text COLLATE utf8_slovenian_ci NOT NULL 
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_slovenian_ci; 

-- 
-- Fill data for `my_table` 
-- 

INSERT INTO `my_table` (`id`, `naslov`, `besedilo`, `datum`, `avtor`) VALUES 
+0

Они сгенерированы из ['mysqldump'] (https://dev.mysql.com/doc/refman/5.7/en/ mysqldump.html). Вы можете сделать это только с помощью PHP, но это не рекомендуется. – tadman

+0

Я согласен с тем, что это нецелесообразно. Для большой БД скрипт php мог тайм-аут перед извлечением всей БД. Лучше всего использовать соответствующий инструмент, такой как mysqldump, и не делать это из самого веб-приложения. – PressingOnAlways

ответ

0

просто использовать Exec() в PHP с помощью следующей команды оболочки

exec('mysqldump –u [user name] –p[password] [database name] > [dump file]');

не забывайте, что exec может быть отключен в php.ini, если он не работает

+1

Я бы не запускал это из-за рисков безопасности ... Если по какой-то причине вам нужно запустить дамп, запустите его через командную строку. Если вам нужно, чтобы он запускался регулярно, просто выполните mysqldump из cron. –

+0

Не работает. Я удалил exec из «disable_functions» в php.ini. Код генерирует пустой файл. Я использую Wndows 10, WAMP server; Мои настройки данных база: соединение: локальный пользователь: корневые пароль: базы данных: first_db Я немного consernd, когда я Леве пустое место для пароля в команде –

Смежные вопросы