mysqldump passthru код возврата - PullRequest
       22

mysqldump passthru код возврата

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

Я пытаюсь сделать дамп MySQL через php.

Это код

$backupFile = $table. "-". date("Y-m-d-H:i:s") . '.gz';
    //Command nog aanpassen....
    $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname  | gzip > $backupFile";
    //$status = system($command);
    echo $backupFile ."<br>";
    $status = passthru($command, $a);
    echo "output:" .  $a;

Значение $ a = 2. Но я не могу найти, что это значит. Я также нигде не могу найти файл резервной копии.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2009

Я не уверен, что это проблема, но похоже, что ваш параметр передачи пароля неверен.

Если вы используете -p, у вас должен быть пароль рядом с ним, без пробелов, например:

$command = "mysqldump --opt -h $dbhost -u $dbuser -p$dbpass $dbname  | gzip > $backupFile";

Или используйте длинный --password = $ dbpass.

Например:

$command = "mysqldump --opt -h $dbhost -u $dbuser --password=$dbpass $dbname  | gzip > $backupFile";

Со страницы руководства mysqldump:

- пароль [= пароль], -p [пароль]

Пароль, используемый при подключении к серверу. Если вы используете краткую форму опции (-p), между ней и паролем не должно быть пробела. Если вы пропустите значение пароля после параметра --password или -p в командной строке, вам будет предложено ввести его.

0 голосов
/ 10 ноября 2009

Может быть также местом назначения вашей резервной копии. Убедитесь, что у пользователя, которого вы запускаете mysqldump, поскольку (в вашем случае, вероятно, www-data или какой-то другой пользователь apache) есть разрешение на запись в каталог, в который вы пытаетесь записать резервную копию. Много раз я пробую команду из командной строки .. и вижу, что она работает нормально ... но я root или мой пользователь .. не www-data.

...