phpmysqldatabase-backupsmysql-error-1044

PHP Script to Backup MySQL Database


I'm trying to write a PHP script to backup a MySQL database:

   if ( $db_resource = mysql_connect($db_server, $db_username, $db_password, $db_newlink) )
   {
      if ( mysql_select_db( $db_name, $db_resource ) )
      {
         $backupFile = $db_name."_".date( "Y-m-d-H-i-s" ).".gz";
         $command = "mysqldump --opt -h ".$db_server." -u ".$db_username." -p ".$db_password." ".$db_name." | gzip > ".$db_save_dir."/".$backupFile;
         system( $command );
      }
   }

   mysql_close( $db_resource );

When I run it from the shell terminal, I get this:

[stingray]$ php /[ABSOLUTE PATH]/db_backup.php

Enter password: [I INPUT PASSWORD]

mysqldump: Got error: 1044: Access denied for user '[USERNAME]'@'208.113.128.0/255.255.128.0' to database '[PASSWORD]' when selecting the database

Okay, now what I really don't understand is why it is calling the database as my password. If I point my web browser at the file, it runs just fine. Does anyone know what I should be doing? Personally, I really don't care if it's PHP, Python, CGI, etc., just so long as it can run on an Apache server.

Thanks.


Solution

  • The syntax for the password flag is different. Remove the space after the -p flag and give it another shot.