When installing Matomo you need to specify a MySQL (or MariaDB) database hostname, user and password.

To create your database and database user, you would typically use your web hosting provider interface which would let you add a new MySQL database and create a new user with permission to access this database, in just a few clicks.

If you are installing Matomo (Piwik) on your own server and/or don’t have a tool available to manage your database, you can manually create the MySQL database user by following these steps:

  1. Connect to your MySQL database:

    $ mysql
    
  2. Create a database for Matomo:

    $ mysql> CREATE DATABASE matomo_db_name_here;
    
  3. Create a user called matomo, if you are using MySQL 5.7 or MySQL 8 or newer:

    $ mysql> CREATE USER 'matomo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password-here';
    

    Or if you are using an older version such as MySQL 5.1, MySQL 5.5, MySQL 5.6:

    $ mysql> CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'my-strong-password-here';
    
  4. Grant this user matomo the permission to access your matomo_db_name_here database

    $ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON matomo_db_name_here.* TO 'matomo'@'localhost';
    

    It is important to grant the user the following privileges: SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES

  5. (OPTIONAL) Grant this user matomo the FILE global privilege: (if enabled, reports will be archived faster thanks to the LOAD DATA INFILE feature)

    $ mysql> GRANT FILE ON *.* TO 'matomo'@'localhost';
    

In these instructions:

  • replace matomo_db_name_here with the name of your MySQL database (if possible, this database should only have the Matomo tables installed).
  • replace my-strong-password-here by a strong secure password.
  • replace matomo by your chosen MySQL username (or simply use matomo).
Previous FAQ: Do I need to create a MySQL database?