prisma подключается к mysql как указать env

Чтобы Prisma могла подключаться к базе данных MySQL, необходимо указать строку подключения в переменной окружения DATABASE_URL. Это делается в файле .env, который находится в корне проекта. Вот как это сделать:


Шаг 1: Настройка строки подключения в .env

  1. Откройте файл .env (если его нет, создайте).
  2. Добавьте строку подключения к MySQL. Пример:javascriptDATABASE_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 настроен для приема внешних подключений. Для этого:

  1. Проверьте файл конфигурации MySQL (my.cnf или mysqld.cnf) и убедитесь, что параметр bind-address настроен на 0.0.0.0 или IP-адрес сервера:javascriptbind-address = 0.0.0.0
  2. Убедитесь, что пользователь MySQL имеет права на удаленное подключение. Например:sqlGRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
  3. Проверьте, что порт 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 и убедитесь, что сервер доступен с указанного хоста.