How do I create a new database and database user in MySQL?
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:
-
Connect to your MySQL database:
$ mysql
-
Create a database for Matomo:
$ mysql> CREATE DATABASE matomo_db_name_here;
-
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';
-
Grant this user
matomo
the permission to access yourmatomo_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
-
(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 usematomo
).