2013-05-08 3 views
0

Я использую этот код для загрузки резервной копии базы данных MySql, но он загружает пустой файл. Пожалуйста, также руководство для восстановления этой резервной копии.MysqlDump Вернуть пустой файл резервной копии базы данных

<?php 
//connect to database 
include'connect.php'; 
$backupFile = $dbname . date("Y-m-d-H-i-s") . '.sql'; 
$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile"; 
system($command); 
?> 
+1

ли работа при вводе этой команды вручную? – str

ответ

-1

Ваши переменные привязаны к параметрам. Попробуйте изменить это:

$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile"; 

к этому:

$command = "mysqldump -h $hostname -u $username -p $password $dbname > $backupFile"; 
+0

Фактически, когда я вхожу в систему, я обычно нахожу 'mysql -uroot -p', должен работать независимо :) –

+1

Нет, его синтаксис прав. В частности, если между '-p' и паролем есть пробел, инструмент будет запрашивать пароль вместо его использования и использовать пароль в качестве имени каталога. Все инструменты MySQL читают '-p' как сокращенное обозначение' --password = ', включая' = ', поэтому их можно прикрепить. –

0

Заменить system с echo, чтобы показать сформированную команду и выполнить ее в командной строке вручную. Ошибки обычно отображаются на STDERR, который не попадает в вызов system, и если вы получаете пустой вывод, это означает, что он ничего не смог вывести. Исправьте ошибку, а затем исправьте свой код. Я бы также использовал passthru вместо system.

Для восстановления резервной копии после использования (из командной строки):

mysql -u<user> -p <database> < myfile.sql