2011-12-13 2 views
0

Je suis en train de générer un fichier de vidage de MySQL de PHP en utilisant les éléments suivants:Création d'un fichier de vidage de PHP

exec('mysqldump -u root -ppassword maindb > c:\DB_Dump.sql'); 

Cependant, le fichier généré est vide. Quelqu'un sait ce qui ne va pas?

De l'cmd, cela fonctionne: cd C:\Program Files\MySQL\MySQL Server 5.5\bin pour changer le chemin, puis

mysqldump -u root -ppassword maindb > c:\DB_Dump.sql 

Mais je suis en train de le faire dans PHP.

+1

est mysqldump dans votre chemin? Essayez d'ajouter un chemin absolu à la commande. 'exec ('/ usr/bin/mysqldump ....')' et voyez si ça aide. –

+0

J'ai essayé ce exec ('C: \\ Program Files \\ MySQL \\ MySQL Server 5.5 \\ bin \\ mysqldump -u root -programme sur mesure> c: \\ DB_Dump.sql'); mais toujours la même chose –

+0

le répertoire racine n'est généralement pas accessible en écriture pour les utilisateurs ordinaires. –

Répondre

2

Pour supprimer la plupart des problèmes communs:

  • Utilisez le chemin complet
  • Envoyer la sortie à un répertoire public en écriture

Le chemin de mysqldump dans votre ordinateur semble avoir des espaces blancs. Assurez-vous de le citer correctement:

exec('"C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\mysqldump" -u root -ppassword maindb > c:\\DB_Dump.sql 2> c:\file.err.txt') 
Questions connexes