WP-DBManager
WP-DBManager looks after the database behind your site: it backs it up, restores it, optimizes and repairs it, empties or drops tables and runs queries you write, all from wp-admin rather than from a shell or phpMyAdmin. Backups, optimization and repair can be left to run on a schedule, and the back
WP-DBManager looks after the database behind your site: it backs it up, restores it, optimizes and repairs it, empties or drops tables and runs queries you write, all from wp-admin rather than from a shell or phpMyAdmin. Backups, optimization and repair can be left to run on a schedule, and the backup can be emailed to you when it finishes.
Donations
I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.
Usage
Securing The Backup Folder
A database backup contains everything, including your users table. Anyone who can guess a backup file name can download the lot, so the folder must not be served over HTTP.
The reliable option, on any server: set Path To Backup under WP-Admin -> Database -> Settings to a folder outside your web root, for example /var/www/example.com/backup-db when WordPress lives in /var/www/example.com/public_html . Nothing served, nothing to configure.
If the folder has to stay inside the web root:
- Apache — move htaccess.txt from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/.htaccess
- IIS — move Web.config.txt from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/Web.config
- nginx — nginx does not read .htaccess files, so the file above does nothing. Add this to your server block and reload nginx:
location ^~ /wp-content/backup-db/ { deny all; }
Move index.php from Folder: wp-content/plugins/wp-dbmanager to Folder: wp-content/backup-db/index.php as well, so the folder cannot be listed.
The Backup DB page requests a file from the folder and reports what the server actually returns, so you can confirm the folder is closed rather than assume it.
WP-CLI
wp dbmanager tables wp dbmanager backups wp dbmanager backup --yes wp dbmanager backup --no-gzip --yes wp dbmanager restore <file> --yes wp dbmanager delete <file>... --yes wp dbmanager email <file> --to=ops@example.org --yes wp dbmanager optimize --all --yes wp dbmanager repair wp_options --yes wp dbmanager empty <table>... --yes wp dbmanager drop <table>... --yes
Everything that changes anything asks first , so a script has to pass --yes . That includes backup , which deletes the oldest backups to stay inside Maximum Backup Files , and email , because a dump holds your users table and a sent message cannot be recalled. tables and backups only read, and take a --format of table , csv , json , yaml , count or ids ; their sizes are in bytes rather than the KiB and MiB the screens print, because a shell is better at arithmetic than at parsing 1.2 MiB .