mysqldump intermediários ReturnCode de
Pergunta
Eu estou tentando fazer um despejo mysql via php.
Este é o código
$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;
O valor de $ a = 2. Mas não consigo encontrar o que significa. Eu também não consigo encontrar a qualquer lugar do arquivo de backup.
Qualquer de idéia?
Solução
Eu não tenho certeza se este é o problema, mas parece que sua senha passando parâmetro está incorreto.
Se você usar -p você precisa ter a senha bem próximo a ela, sem espaços, assim:
$command = "mysqldump --opt -h $dbhost -u $dbuser -p$dbpass $dbname | gzip > $backupFile";
Ou utilize a longo --password = $ dbpass.
Por exemplo:
$command = "mysqldump --opt -h $dbhost -u $dbuser --password=$dbpass $dbname | gzip > $backupFile";
A partir da página homem mysqldump:
- password [= senha], -p [senha]
A senha para usar ao conectar ao servidor. Se você usar o formulário de opção curta (-p), você não pode ter um espaço entre a opção ea senha. Se você omitir o valor da senha seguindo a opção --password ou -p na linha de comando, você será solicitado para um.
Outras dicas
Também poderia ser destino do seu backup. Certifique-se o usuário estiver executando mysqldump como (no seu caso www-data prováveis, ou algum outro usuário apache) tem permissão de gravação para o diretório onde você está tentando escrever seu backup. Muitas vezes eu vou tentar um comando a partir da linha de comando .. e vê-lo funcionar bem .. mas eu sou raiz, ou o meu utilizador .. não www-data.