To move Matomo (Piwik) from one server to another, you need to move all the Matomo files (the whole directory containing Matomo files), as well as the database to another MySQL server.
Follow these steps to migrate all Matomo service and data to another server
- Export your mysql database in a file; you can use tools such as phpMyAdmin or
mysqldumpto do this. The simplest way to make a full copy of the MySQL database is to run the
mysqldumpcommand with this set of parameters:
$ time mysqldump --extended-insert --no-autocommit --quick --single-transaction MATOMO_DATABASE_NAME -uMATOMO_DATABASE_USERNAME -p > matomo_backup_database.sql
(If you use Matomo Cloud, then you can securely download your full database dump by contacting the Matomo Cloud Support team.)
- We can then compress this backup before sending it to the backup server:
$ tar zcf matomo-mysql-database-$(date +%Y-%m-%d-%H.%M.%S).sql.tar.gz matomo_backup_database.sql
- Import the backed up database in your new server; you can use phpmyadmin to import the file that you previously created, or restore the DB backup by running the following command:
$ time mysql MATOMO_DATABASE_NAME -uMATOMO_DATABASE_USERNAME -p < matomo_backup_database.sql. This should create more than a dozen Matomo tables in your database.
- Install Matomo in your new server; it is important that you install the exact same version as the one you are currently using. During the installation process, you will be asked to provide the mysql server, login, password and table prefix. Specify the same table prefix (by default, “matomo_”). Matomo will detect that the tables are present in the database and all your existing websites and reports will be automatically detected. It will only work if you re-install the exact same version – see Which version of Matomo I use?, and download the right version from the builds.piwik.org server
- If you use the auto archiving cron, you will have to setup the cron script on the new server.
Note that during the operation, visits will not be tracked.