2

I tried to dump a database:

<?php
$dbhost = "localhost";
$dbuser = "XXXX";
$dbpass = "XXXXXXXX";
$dbname = 'testdb';

$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe $dbname  --user=$dbuser--password=$dbpass > dumpfile.sql");
?>

I tried both specified full path to mysqldump.exe or just use mysqldump, it still give me a 0kb dumpfile.sql

Details: Programming Language: PHP Database: MySql 5.XX OS(server): Windows Server 2003. (currently testing on Windows Vista machine)

EDIT @ Jeremy Heslop:

I tried:

shell_exec("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --opt -h $dbhost -u$dbuser -p$dbpass $dbname > test.sql");

safe_mode = off

Still no luck man.

2
  • Its is mysqldump not mysqldumb :D Commented Jan 14, 2010 at 3:16
  • try this stackoverflow.com/a/19189484/1572778 it works fine. -its about permission issue. Commented Oct 4, 2013 at 19:46

4 Answers 4

2

Call me crazy, but don't you need to escape those backslashes in your path name? I'm guessing that the command fails, and since the error is on stderr, nothing gets written.

Sign up to request clarification or add additional context in comments.

2 Comments

i went crazy with you (removed the backslashes), nothing better, haha
That would be crazy since I was suggesting you double them :) shell_exec("C:\\wamp\\bin\\mysql\\mysql5.1.33\\bin\\mysqldump.exe --opt -h $dbhost -u$dbuser -p$dbpass $dbname > test.sql");
1

It should be "c:\wamp\bin\mysql\mysql5.1.36\bin>mysqldump -u root -p zencartdb > zencartdb.sql"

it demands for password, provide if you have given password to root or simply hit enter. This will take backup successfully. I have tested it on Windows Vista also.

Comments

0

If I'm not mistaken the dbname should be at the end of the call after the --user and --password like this:

$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --user=$dbhost --password=$dbpass $dbname > dumpfile.sql");

Otherwise if that doesn't work there are some other things to look out for. Make sure the user that php runs as has permissions to write to that directory. Also make sure that php.ini has safe_mode = off as that could cause issues. Good luck!

2 Comments

Edited my answer. Is it easier to create the mysqldump in batch file?
Not if you need to pass user/pass info from php, but if you don't then a batch file might be more straight forward. When you run the mysqldump command manually from the command line does it work as expected? James answer above could be leading to something. I would also try printing out the output of $list (output of shell_exec) to se if mysqldump is returning any errors. Try turning on verbose for mysqldump.
0

I tried like this $result = system ("C:\wamp\mysql\bin\mysql.exe -u $username -p $password $dbname < $pathtomysqlfile"); and executed successfully then backup is restored.I'm wsing wamp.please try it..........

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.