2 Create New Database And Database User
Mehran Dehghanian edited this page 4 years ago
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 dont 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 :

$ 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 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

(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';

source