Прямое взаимодействие с базами данных — одна из самых мощных функций n8n. Она позволяет создавать сложные рабочие процессы, которые читают, записывают и обновляют информацию в ваших основных системах хранения данных, будь то сайт на WordPress, CRM-система или кастомное приложение. В этом гайде мы рассмотрим подключение к самым популярным базам: MySQL, PostgreSQL и MongoDB.

Из этой инструкции вы узнаете:

  • ✅ Как подготовить базу данных и получить реквизиты для подключения.
  • ✅ Как настроить Credentials для MySQL, PostgreSQL и MongoDB в n8n.
  • ✅ Как выполнять базовые операции: чтение (SELECT) и вставку (INSERT) данных.
  • ✅ Ключевые отличия при работе с SQL и NoSQL базами в n8n.

Шаг 1: Подготовка базы данных

Прежде чем подключаться из n8n, нужно убедиться, что ваша база данных готова к внешним подключениям и у вас есть все необходимые реквизиты.

  1. Создайте отдельного пользователя. Никогда не используйте `root`-пользователя для внешних подключений. Создайте специального пользователя (например, `n8n_user`) с ограниченными правами.
  2. Выдайте права. Предоставьте этому пользователю только необходимые права (SELECT, INSERT, UPDATE, DELETE) и только для тех таблиц, с которыми n8n будет работать.
  3. Разрешите удаленное подключение. Убедитесь, что ваш сервер баз данных настроен на прием подключений с IP-адреса, на котором работает ваш n8n. Лучшая практика — добавить IP вашего n8n в "белый список" файрвола, а не открывать доступ для всех.
  4. Соберите реквизиты. Вам понадобятся: хост (IP-адрес или домен), порт (стандартные: 3306 для MySQL, 5432 для PostgreSQL, 27017 для MongoDB), имя базы данных, имя пользователя и пароль.

Шаг 2: Настройка Credentials в n8n

Теперь нужно сохранить реквизиты в зашифрованном виде в n8n.

Для MySQL и PostgreSQL

Процесс для этих реляционных баз данных практически идентичен.

  1. В n8n перейдите в CredentialsAdd Credential.
  2. Найдите и выберите Postgres или MySQL.
  3. Заполните все поля, которые вы собрали на предыдущем шаге: Host, Database, User, Password, Port.
  4. Для большинства облачных баз данных потребуется включить опцию SSL. Уточните это в документации вашего хостинг-провайдера.
  5. Нажмите Save.

Для MongoDB

MongoDB часто использует строку подключения (Connection String) вместо отдельных полей.

  1. Создайте новый Credential типа Mongo DB.
  2. Вставьте вашу строку подключения в поле Connection String. Она обычно выглядит так: `mongodb+srv://user:password@host/dbname?retryWrites=true&w=majority`.
  3. n8n автоматически распарсит из нее все данные. Нажмите Save.

Шаг 3: Выполнение запросов в воркфлоу

Теперь самое интересное — используем подключения в сценариях.

Чтение данных (SELECT) из MySQL/Postgres

  1. Добавьте ноду MySQL или Postgres в свой воркфлоу.
  2. Выберите созданный Credential.
  3. В поле Operation выберите Execute Query.
  4. В поле Query напишите ваш SQL-запрос. Вы можете использовать данные из предыдущих нод. Например: `SELECT * FROM clients WHERE email = '{{ $json.email }}'`. n8n автоматически защищает такие вставки от SQL-инъекций.
  5. После выполнения нода вернет массив JSON-объектов, где каждый объект — это строка из вашей таблицы.

Вставка данных (INSERT) в MySQL/Postgres

Для простых вставок можно использовать операцию Insert. Укажите таблицу (Table) и колонки (Columns), которые нужно заполнить значениями из предыдущих нод.

Для сложных вставок или обновлений используйте Execute Query с запросами `INSERT` или `UPDATE`.

Работа с MongoDB

Нода MongoDB работает не с SQL, а с операциями над JSON-документами.

  • Для поиска данных используйте Operation: Find. В поле Query нужно указать JSON-объект с условиями поиска, например: `{ "status": "new" }`.
  • Для вставки используйте Operation: Insert и передайте в поле Fields to Add JSON-объект, который хотите сохранить.

Нужно построить сложные конвейеры данных?

Мы помогаем синхронизировать данные между сайтами, CRM и внутренними базами данных, строить автоматические отчеты и мигрировать информацию между системами. Оставьте заявку, чтобы обсудить вашу задачу.

Частые вопросы о работе с базами данных в n8n

Какую базу данных лучше использовать с n8n?

Выбор зависит от задачи. PostgreSQL и MySQL (реляционные) отлично подходят для структурированных данных (заказы, пользователи). MongoDB (NoSQL) хороша для гибких схем, логов или JSON-документов. n8n поддерживает все три 'из коробки'.

Нужно ли открывать доступ к базе данных для всего интернета?

Нет, и это небезопасно. Лучшая практика — добавить IP-адрес вашего сервера n8n в 'белый список' (firewall) сервера базы данных. Это позволит подключаться только n8n.

Как избежать SQL-инъекций при работе с данными от пользователей?

n8n помогает с этим. В нодах для баз данных (MySQL, Postgres) есть режим 'Execute Query', где параметры запроса вставляются через `{{ $json.some_value }}`. n8n автоматически экранирует эти значения, предотвращая инъекции.

Можно ли выполнять сложные запросы с JOIN'ами?

Да, абсолютно. В поле 'Query' вы можете писать любой стандартный SQL-запрос, включая JOIN, GROUP BY, подзапросы и т.д. Результат будет возвращен в виде JSON-массива, готового к использованию в следующих нодах.