Что было бы лучшим способом для резервного копирования и восстановления дампов MySQL с помощью только PHP? - PullRequest
3 голосов
/ 20 января 2009

Я знаю, как вы делаете это из консоли, и я знаю, что вы можете выполнять консольные команды с помощью php, но есть ли способ рекурсивного вывода базы данных в файл, а затем восстановления из этого файла, просто PHP? Я хочу, чтобы он мог работать на серверах Windows и NIX.

Я предполагаю, что нужно будет перебрать таблицы и строки, но как мне получить их список? Или это вообще можно сделать? Похоже, это заняло бы огромное количество памяти, если бы дБ был хорошего размера. Мысли

Ответы [ 5 ]

2 голосов
/ 20 января 2009
mysql_query("SELECT * INTO OUTFILE 'sql/backup.sql' FROM my_table");
mysql_query("LOAD DATA INFILE 'sql/backup.sql' INTO TABLE my_table");
1 голос
/ 20 января 2009

Вы можете использовать функцию exec() для вызова mysqldump. Это перенаправит вывод mysqldump (экспорт базы данных) обратно в ваш PHP-скрипт, и вы можете обработать его там, где это необходимо. Это может быть использовано для экспорта одной таблицы или всей базы данных. Инструмент может быть установлен на клиентском компьютере или скрипт PHP может быть запущен на сервере MySQL.

/path/to/mysqldump --host=[svr] --user=[user] --password=[passwd] [db]

Убедитесь, что у пользователя, прошедшего через MySQL, есть разрешения SELECT и LOCK TABLE для каждой базы данных, для которой требуется создать резервную копию.

0 голосов
/ 20 января 2009

Это может помочь с первичными ключами

SHOW CREATE TABLE my_table
0 голосов
/ 20 января 2009

Загляните в базу данных mysql.

0 голосов
/ 20 января 2009

Запустить ШОУ-ТАБЛИЦЫ; запрос. Просмотрите результаты и выполните запросы, перечисленные deizel для каждой таблицы.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...