Skip to content

Instantly share code, notes, and snippets.

Created June 5, 2017 13:17
Show Gist options
  • Save micc83/fe6b5609b3a280e5516e2a3e9f633675 to your computer and use it in GitHub Desktop.
Save micc83/fe6b5609b3a280e5516e2a3e9f633675 to your computer and use it in GitHub Desktop.
Simple PHP script to dump a MySql database
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
$database = 'db';
$user = 'user';
$pass = 'pass';
$host = 'localhost';
$dir = dirname(__FILE__) . '/dump.sql';
echo "<h3>Backing up database to `<code>{$dir}</code>`</h3>";
exec("mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);
Copy link

The script works well locally, now how can I use it externally?

Copy link

RoneoOrg commented Jun 1, 2021

Thanks a lot for this script.

I improved it with a bit of bash and a desktop launcher, it's written in French but this may interest someone:

Copy link

Hi guys,

first of all let me thank you for the amazing simple script.. it works great, but i needed to add some features to fit my project, such as save file from input form in php, where we select de name of the backup and post it to the execut backup script, and then download file in webrowser directly. attached below is a working example of the code.

And yeahhh keep up the good work lads.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);


$name_backup = $_REQUEST['name_backup'];

$command='mysqldump --opt -h' .$databaseHost .' -u' .$databaseUsername .' -p' .$databasePassword .' ' .$databaseName .' > ' .$name_backup;

$file_name = basename($name_backup);
//save the file by using base name
$fn = file_put_contents($file_name,file_get_contents($name_backup));
header("Expires: 0");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: application/file");
header('Content-length: '.filesize($file_name));
header('Content-disposition: attachment; filename="'.basename($file_name).'"');

case 0:
echo 'The database ' .$databaseName .' was successfully stored in the following path '.getcwd().'./' .$name_backup .'';
case 1:
echo 'An error occurred when exporting ' .$databaseName .' zu '.getcwd().'/' .$mysqlExportPath .'';
case 2:
echo 'An export error has occurred, please check the following information:

MySQL Database Name:' .$databaseName .'
MySQL User Name:' .$databaseUsername .'
MySQL Host Name:' .$databaseHost .'

Copy link

Copy link

smitione commented Oct 20, 2022

Hi, first at all, GREAT SCRIPT...! now i have to questions: 1)- how can i zip the dump? 2)- How can i for the download after finish? Suggestions or ideas? Best regards.

Copy link

micc83 commented Oct 21, 2022

Hi @smitione look here, you should find everything you're looking for:

Copy link

thanksssss alot i had very struggle for this command and now i find it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment