mysqllearner
mysqllearner

Reputation: 13903

Mysqldump create empty sql file? [php & mysql on Windows]

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.

Upvotes: 2

Views: 4828

Answers (4)

Nilesh Tighare
Nilesh Tighare

Reputation: 11

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.

Upvotes: 1

dini maniyan
dini maniyan

Reputation: 1

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..........

Upvotes: 0

James
James

Reputation: 8586

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.

Upvotes: 2

Jeremy Heslop
Jeremy Heslop

Reputation: 558

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!

Upvotes: 0

Related Questions