Чтобы Prisma могла подключаться к базе данных MySQL, необходимо указать строку подключения в переменной окружения DATABASE_URL
. Это делается в файле .env
, который находится в корне проекта. Вот как это сделать:
Шаг 1: Настройка строки подключения в .env
- Откройте файл
.env
(если его нет, создайте). - Добавьте строку подключения к MySQL. Пример:javascript
DATABASE_URL="mysql://username:password@host:port/database_name"
- username: Имя пользователя MySQL.
- password: Пароль пользователя MySQL.
- host: Хост базы данных (например,
localhost
или IP-адрес сервера). - port: Порт MySQL (по умолчанию
3306
). - database_name: Имя базы данных, к которой вы подключаетесь.
tovar_db
, пользовательroot
и парольpassword
, строка будет выглядеть так:javascriptDATABASE_URL="mysql://root:password@localhost:3306/tovar_db"
Шаг 2: Убедитесь, что MySQL настроен для удаленного подключения (если база данных не локальная)
Если вы подключаетесь к удаленной базе данных, убедитесь, что MySQL настроен для приема внешних подключений. Для этого:
- Проверьте файл конфигурации MySQL (
my.cnf
илиmysqld.cnf
) и убедитесь, что параметрbind-address
настроен на0.0.0.0
или IP-адрес сервера:javascriptbind-address = 0.0.0.0
- Убедитесь, что пользователь MySQL имеет права на удаленное подключение. Например:sql
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
- Проверьте, что порт 3306 открыт в брандмауэре сервера.
Шаг 3: Проверка подключения Prisma
После настройки строки подключения выполните команду для проверки соединения:
bash
npx prisma db pull
Эта команда подтянет схему базы данных в файл schema.prisma
. Если подключение успешно, вы увидите обновленный файл schema.prisma
.
Шаг 4: Использование переменной окружения в Docker
Если вы используете Docker, убедитесь, что переменная DATABASE_URL
передается в контейнер. В docker-compose.yml
это можно сделать так:
yaml
services:
app:
build: .
environment:
DATABASE_URL: "mysql://username:password@db:3306/tovar_db"
depends_on:
- db
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: tovar_db
ports:
- "3306:3306"
Теперь Prisma будет использовать строку подключения из .env
для работы с MySQL. Если возникнут ошибки подключения, проверьте настройки MySQL и убедитесь, что сервер доступен с указанного хоста.