Now that I have a new environment with WP-CLI db import / export I need to import a database from a website that never had WP-CLI installed.


What's the best Non-WP-CLI export method for WP-CLI import?

Backstory: I've been using Basic WordPress Vagrant Environment for local testing and recently the author added WP-CLI. The more I've been playing around with it the more I'm in love. I even went so far as to create a bash script to spin up new Vagrant boxes using just a name.

Is it better to do an export in WXR format through the WordPress export panel or script then use WP-CLI's import?

require ABSPATH . 'wp-admin/includes/export.php';

// Buffer output

// Generates the WXR export file for download.
$defaults = array (
    'content'    => 'all', 'author' => false, 'category' => false,
    'start_date' => false, 'end_date' => false, 'status' => false,

export_wp( $defaults );

// Get the buffer contents
$xml_export_data = ob_get_clean();
echo $xml_export_data;

Or is there a similar way like above, that I can leverage the WP-CLI db export code and produce a file ready to be imported.

$ wp db export /vagrant/site/site_export.sql
Success: Exported to /vagrant/site/site_export.sql

The easiest route for my main (most important server) is to just do a mysqldump directly through SSH.

# backup:
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

# restore:
mysql -u root -p[root_password] [database_name] < dumpfilename.sql

I'm just not sure that the regular SQL dump will hold all the values required for a WP-CLI import.


A simple mysqldump could be the only thing needed. Now I'm thinking I should have transferred over all the files before import... I'll keep ya'll posted but this could be a two-line process.

1 Answer 1




sudo mysqldump -u root -pPASSWORD DBNAME > filename.sql


wp db import filename.sql


So this turns out to be very painless. The server dump is exactly what WP-CLI needs to import.


  1. sudo mkdir backup
    • Make a directory for the file.
  2. sudo chown -f -R ec2-user:group backup
    • Set permissions to the directory for my SSH user.
  3. cd backup
    • Enter the directoy
  4. Run sudo mysqldump -u root -pPASSWORD DBNAME > filename.sql
    • Initially I was getting permission errors and that was because my EC2-USER needed control of the output directory.


  1. Download filename.sql to my Vagrant folder
  2. vagrant ssh
    • into the box for WP-CLI access
  3. wp db import /vagrant/filename.sql
  4. wp search-replace old-site.com new-site.dev --test-run
    • Test the operation first
  5. wp search-replace old-site.com new-site.dev


  • Make sure plugins and themes are in the correct directories
  • Any errors in your PHP code will break the WP-CLI since it loads WP
  • WP Codex recommends to not change the GUID. You can skip the GUID in search and replace with wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.