Version: Edit on GitHub

Database Setup

Pimcore requires a standard MySQL database, the only thing you should assure is that the database uses utf8mb4 as character set.
If you create a new database just set the character set to utf8mb4.

Note: You have to create the database manually before you can continue with the web-based installer, which automatically creates the underlying database schema for Pimcore.

Command to Create a new Database

mysql -u root -p -e "CREATE DATABASE project_database charset=utf8mb4;"

Permissions needed for Pimcore

Pimcore requires all permissions on database level. You can create a user with the necessary rights with the following commands:

CREATE USER 'project_user'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL ON `project_database`.* TO 'project_user'@'localhost';

Database Server Configuration (Optional)

While setting up the MySQL Server you can enforce utf8mb4 character set and lower case table names by placing a pimcore.cnf file with the following contents into the server config directory (e.g. /etc/mysql/conf.d/). Refer to the server configuration manual applicable to your environment to determine the location of the server config directory.

# MySQL Server configuration for Pimcore.
# @See https://dev.mysql.com/doc/refman/8.0/en/option-files.html
# @See https://pimcore.com/docs/6.x/Development_Documentation/Installation_and_Upgrade/System_Setup_and_Hosting/DB_Setup.html

# Applies to any client connecting to this sever
[client]
default-character-set=utf8mb4

# Applies to mysql cli client application
[mysql]
default-character-set=utf8mb4

# Applies to mysql server
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
lower_case_table_names=1

Setting lower_case_table_names=1 makes sure that tables for Pimcore classes are created in lower case even though their class names contain capital letters.