Прямое взаимодействие с базами данных — одна из самых мощных функций n8n. Она позволяет создавать сложные рабочие процессы, которые читают, записывают и обновляют информацию в ваших основных системах хранения данных, будь то сайт на WordPress, CRM-система или кастомное приложение. В этом гайде мы рассмотрим подключение к самым популярным базам: MySQL, PostgreSQL и MongoDB.
Из этой инструкции вы узнаете:
- ✅ Как подготовить базу данных и получить реквизиты для подключения.
- ✅ Как настроить Credentials для MySQL, PostgreSQL и MongoDB в n8n.
- ✅ Как выполнять базовые операции: чтение (SELECT) и вставку (INSERT) данных.
- ✅ Ключевые отличия при работе с SQL и NoSQL базами в n8n.
Шаг 1: Подготовка базы данных
Прежде чем подключаться из n8n, нужно убедиться, что ваша база данных готова к внешним подключениям и у вас есть все необходимые реквизиты.
- Создайте отдельного пользователя. Никогда не используйте `root`-пользователя для внешних подключений. Создайте специального пользователя (например, `n8n_user`) с ограниченными правами.
- Выдайте права. Предоставьте этому пользователю только необходимые права (
SELECT,INSERT,UPDATE,DELETE) и только для тех таблиц, с которыми n8n будет работать. - Разрешите удаленное подключение. Убедитесь, что ваш сервер баз данных настроен на прием подключений с IP-адреса, на котором работает ваш n8n. Лучшая практика — добавить IP вашего n8n в "белый список" файрвола, а не открывать доступ для всех.
- Соберите реквизиты. Вам понадобятся: хост (IP-адрес или домен), порт (стандартные: 3306 для MySQL, 5432 для PostgreSQL, 27017 для MongoDB), имя базы данных, имя пользователя и пароль.
Шаг 2: Настройка Credentials в n8n
Теперь нужно сохранить реквизиты в зашифрованном виде в n8n.
Для MySQL и PostgreSQL
Процесс для этих реляционных баз данных практически идентичен.
- В n8n перейдите в Credentials → Add Credential.
- Найдите и выберите Postgres или MySQL.
- Заполните все поля, которые вы собрали на предыдущем шаге: Host, Database, User, Password, Port.
- Для большинства облачных баз данных потребуется включить опцию SSL. Уточните это в документации вашего хостинг-провайдера.
- Нажмите Save.
Для MongoDB
MongoDB часто использует строку подключения (Connection String) вместо отдельных полей.
- Создайте новый Credential типа Mongo DB.
- Вставьте вашу строку подключения в поле Connection String. Она обычно выглядит так: `mongodb+srv://user:password@host/dbname?retryWrites=true&w=majority`.
- n8n автоматически распарсит из нее все данные. Нажмите Save.
Шаг 3: Выполнение запросов в воркфлоу
Теперь самое интересное — используем подключения в сценариях.
Чтение данных (SELECT) из MySQL/Postgres
- Добавьте ноду MySQL или Postgres в свой воркфлоу.
- Выберите созданный Credential.
- В поле Operation выберите Execute Query.
- В поле Query напишите ваш SQL-запрос. Вы можете использовать данные из предыдущих нод. Например: `SELECT * FROM clients WHERE email = '{{ $json.email }}'`. n8n автоматически защищает такие вставки от SQL-инъекций.
- После выполнения нода вернет массив 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-массива, готового к использованию в следующих нодах.