Re: [PHP] One Button DB backup
- Date: Sat, 5 Nov 2016 16:15:55 -0400
- From: Adam Jon Richardson <adamjonr@xxxxxxxxx>
- Subject: Re: [PHP] One Button DB backup
On Sat, Nov 5, 2016 at 3:52 PM, Adam Jon Richardson <adamjonr@xxxxxxxxx>
> On Sat, Nov 5, 2016 at 3:41 PM, Tedd Sperling <tedd@xxxxxxxxxxxx> wrote:
>> > On Nov 5, 2016, at 10:12 AM, Paul M Foster <paulf@xxxxxxxxxxxxxxxxx>
>> > On Fri, Nov 04, 2016 at 01:14:37PM -0400, Tedd Sperling wrote:
>> >> Hi gang:
>> >> I am in need of a one-button backup of a database via a php script
>> >> Anyone have any suggestions, comments, code?
>> > What I like about SQLite is that it's generally a single file which can
>> > be copied out. As I recall, MySQL has a cluster of files which can be
>> > done the same way, if you can find which directory they reside in.
>> > PostgreSQL is a lost cause. The files are all in one place, but the
>> > names are weird.
>> > If you can't use the shell (from inside PHP) to run the "dump" commands
>> > for the DBMS involved, the last way I know is to use the SQL standard
>> > "information_schema" view(s) to get at the schema for the database, and
>> > then iterate over the results to fetch the individual table contents.
>> > If you're looking for an off-the-shelf solution (push button, suck
>> > data), I don't know one.
>> > Paul
>> I can download the entire database via phpMyAdmin — it’s quite simple —
>> just export.
>> I know I did it some time ago, but I can’t find the code.
>> So, I was hoping someone had written a db export.
>> In any event, thanks.
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
> Something like this little bit of code works:
> $command = "mysqldump --add-drop-table -h localhost " .
> "-u USERNAME -p PASSWORD DBNAME > FILETOPIPETO";
> $ret_val = null;
> // create current backup
> $output = system($command, $ret_val);
Just a few quick follow-up points on this method:
1) This approach shouldn't be used on a shared server, as the command-line
logs could be viewed by others to gain the DB credentials (not an issue in
the cases I've used this approach, as the server was only hosting one
2) I forgot that this approach requires no space between the password and
the -p argument, so it should read:
$command = "mysqldump --add-drop-table -h localhost " .
"-u USERNAME -pPASSWORD DBNAME > FILETOPIPETO";
$ret_val = null;
// create current backup
$output = system($command, $ret_val);