Question

Je suis en train de faire un dump mysql via php.

Ceci est le code

$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;

La valeur de $ a = 2. Mais je ne peux pas trouver ce que cela signifie. Je ne peux pas trouver le fichier de sauvegarde partout.

? De Toute idée

Était-ce utile?

La solution

Je ne sais pas si cela est le problème, mais il semble que votre paramètre de passage de mot de passe est incorrect.

Si vous utilisez -p vous devez avoir le mot de passe juste à côté, sans espace, comme suit:

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

Ou utilisez long --password = $ dbpass.

Par exemple:

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

A partir de la page man mysqldump:

  

- mot de passe [= password], -p [password]

     

Le mot de passe à utiliser lors de la connexion au serveur. Si vous utilisez la forme courte (-p), vous ne pouvez pas avoir un espace entre l'option et le mot de passe. Si vous omettez la valeur de mot de passe suivant l'option -p ou --password sur la ligne de commande, vous êtes invité pour un.

Autres conseils

Peut-être aussi la destination de votre sauvegarde. Assurez-vous que l'utilisateur que vous utilisez comme mysqldump (dans votre cas probablement www-data, ou un autre utilisateur apache) a l'autorisation d'écriture dans le répertoire où vous essayez d'écrire votre sauvegarde. Beaucoup de fois je vais essayer une commande de la ligne de commande .. et voir ça fonctionne très bien .. mais je suis racine, ou mon utilisateur .. pas www-data.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top