Установка MySQL для Directus

Если вы создаёте приложение, например, с Next.js, и хотите использовать Directus как headless CMS с базой данных MySQL, важно правильно установить и настроить MySQL. В частности, рекомендуется использовать аутентификационный плагин mysql_native_password, поскольку Directus может не поддерживать новый механизм caching_sha2_password, применяемый по умолчанию в MySQL 8+.

Установка MySQL

sudo apt update
sudo apt install mysql-server

После установки MySQL root-пользователь будет использовать аутентификацию через сокет (auth_socket), и подключение по паролю (-u root -p) работать не будет. Для начала работы используйте:

sudo mysql

(Необязательно) Настройка root-доступа по паролю

Если вы хотите подключаться к MySQL как root-пользователь с помощью пароля (например, через mysql -u root -p или с использованием GUI-клиентов), выполните:

sudo mysql

Затем в MySQL:

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
FLUSH PRIVILEGES;

Теперь можно подключаться по:

mysql -u root -p

Создание базы данных и пользователя для Directus

Войдите в MySQL (например, через sudo mysql, если не настраивали пароль для root):

sudo mysql

Создайте базу данных и пользователя, указав нужный аутентификационный плагин:

CREATE DATABASE directus_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'directus_user'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'your_secure_password';

GRANT ALL PRIVILEGES ON directus_db.* TO 'directus_user'@'localhost';
FLUSH PRIVILEGES;

Проверка используемого плагина

Убедитесь, что пользователь Directus создан с нужным плагином:

SELECT user, host, plugin
FROM mysql.user
WHERE user = 'directus_user';

Ожидаемый результат:

| directus_user | localhost | mysql_native_password |

Что делать дальше?

Теперь вы можете перейти к установке Directus и подключению к базе данных. При установке Directus (через Docker, npm или npx), укажите следующие параметры подключения к базе данных:

  • Host: localhost
  • Database: directus_db
  • User: directus_user
  • Password: (тот, что вы указали при создании пользователя)

Пример настройки в .env для Directus:

DB_CLIENT=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=directus_db
DB_USER=directus_user
DB_PASSWORD=your_secure_password

Теперь можно запускать Directus и начинать настройку CMS через веб-интерфейс.

Другие статьи
Деплой Next.js приложения

Деплой Next.js приложения

В этой статье описан весь процесс деплоя: от подключения к серверу по SSH до настройки проксирования через Nginx и установки SSL-сертификата от Let’s Encrypt.