Если вы создаёте приложение, например, с 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 через веб-интерфейс.