php exec() - mysqldump crée un fichier vide
Je veux créer une sauvegarde à partir d'une base de données, mais je reçois un fichier vide.
include('config.php');
$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);
echo "<br />".$command;
test.sql est créée où la .fichier php est situé.
Edit:
Remarque! J'utilise XAMPP WINDOWS !
Solution:
Parce que je suis sur un Windows Serveur Web (XAMPP), j'avais besoin de spécifier le chemin d'accès:
$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
- J'ai enlevé l'espace entre-p et le mot de passe. Il ressemble:
-pMYPASSWORD
- Remplacé
"
avec'
Je pense que si vous utilisez Linux, serveur web, vous n'avez pas à spécifier le chemin d'accès pour la commande mysqldump.
Cheers! 🙂
Je pense que vous devriez supprimer l'espace entre-p et le mot de passe.
Toujours obtenir un fichier vide.
Avez-vous essayé de l'écho-ing de la commande (pour s'assurer que toutes les variables sont passées comme prévu) ou de test manuellement avec le droit d'entrée?
Toujours obtenir un fichier vide.
Avez-vous essayé de l'écho-ing de la commande (pour s'assurer que toutes les variables sont passées comme prévu) ou de test manuellement avec le droit d'entrée?
OriginalL'auteur Reteras Remus | 2012-08-17
Vous devez vous connecter pour publier un commentaire.
Ce sont les paramètres
-uROOT -pmotdepasse --les bases de données DB-résultat-file=fichier.SQL
test.sql toujours de 0 ko.
OriginalL'auteur Jordi Kroon
Essayez celui-ci:
-son sur autorisation d'émettre.
OriginalL'auteur javinczki
Si vous regardez le manuel de exec la sortie passe à un tableau qui est le deuxième argument. Qui peut être la source du problème.
OriginalL'auteur Ed Heal
Vous devez supprimer l'espace entre-p et le mot de passe.
--opt
n'est pas nécessaire avec les versions récentes de mysql.Autre que cela, votre syntaxe est correcte, donc si ça ne fonctionne pas avec l'option-p correctif, vous devez vérifier les paramètres et les produits de la commande.
OriginalL'auteur Denys Séguret
Prendre les variables de la cite et remove --opt.
Assurez-vous également que vous avez un nom de fichier unique
$backupfile = $dbname . date("Y-m-d-H-i-s") . '.sql';
$command = "D:\xampp\mysql\bin\mysqldump -u $_user -p$_pass $_db > $backupfile";
system($command);
OriginalL'auteur Jacob Goulden
Pour ceux qui sont sur Mac
J'étais à combattre cette question l'ensemble de la soirée d'aujourd'hui. Stupide erreur: on a besoin de faire un chmod du répertoire que vous dumping le fichier.
J'ai couru ce qui fixe la question:
OriginalL'auteur yulolimum
Essayez ceci:
Puis forcer le téléchargement d'un fichier:
Edit: Vous avez à donner des autorisations pour le dossier où vous conservez des copies.
OriginalL'auteur Roberth Moreira