Перейти к основному содержимому

Настройка базы данных

Для работы Pimcore требуется стандартная база данных MySQL. Единственное, в чем вам необходимо убедиться, — это в том, что база данных использует кодировку utf8mb4. Если вы создаете новую базу данных, просто установите набор символов (character set) на utf8mb4.

Примечание: Вам необходимо создать базу данных вручную, прежде чем вы сможете продолжить работу с веб-инсталятором, который автоматически создаст необходимую схему таблиц для Pimcore.

Команда для создания новой базы данных

mysql -u root -p -e "CREATE DATABASE project_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"  

Права доступа, необходимые для Pimcore

Pimcore требуются полные права (ALL PRIVILEGES) на уровне базы данных. Вы можете создать пользователя с необходимыми правами с помощью следующих команд:

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

Конфигурация сервера базы данных (Опционально)

Вы можете принудительно установить определенные параметры конфигурации, разместив файл pimcore.cnf со следующим содержимым в директории конфигурации (например, /etc/mysql/conf.d/). Обратитесь к руководству по конфигурации сервера, соответствующему вашей среде, чтобы определить точное расположение директории конфигурации сервера.

# Конфигурация сервера MySQL для Pimcore.
# @See https://dev.mysql.com/doc/refman/8.0/en/option-files.html
# @See https://pimcore.com/docs/pimcore/11.0/Development_Documentation/Installation_and_Upgrade/System_Setup_and_Hosting/DB_Setup.html

# Применяется к любому клиенту, подключающемуся к этому серверу
[client]
default-character-set=utf8mb4

# Применяется к консольному приложению mysql cli
[mysql]
default-character-set=utf8mb4

# Применяется к серверу mysql
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
lower_case_table_names=1

Установка параметра lower_case_table_names=1 гарантирует, что таблицы для классов Pimcore будут создаваться в нижнем регистре, даже если их имена классов содержат заглавные буквы. Начиная с MySQL 8, вы больше не можете изменить опцию lower_case_table_names после того, как директория данных (data directory) была инициализирована. Если директория уже была инициализирована с другим значением lower_case_table_names, MySQL не сможет запуститься (выдав ошибку Different lower_case_table_names settings for server and data dictionary). Чтобы это исправить, поместите файл pimcore.cnf в директорию config, удалите директорию данных MySQL и запустите mysqld --initialize. Это действие удалит все базы данных, поэтому сделайте резервную копию существующих баз с помощью mysqldump перед удалением директории данных.

rm -rf /var/lib/mysql  
mkdir /var/lib/mysql
chown mysql:mysql /var/lib/mysql
mysqld --initialize


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.