O n8n e a sua base de dados: os nós de MySQL e PostgreSQL

Os nós de MySQL e de PostgreSQL do n8n deixam um fluxo consultar, inserir e actualizar linhas directamente numa base de dados. O nó é a parte fácil. A parte difícil é chegar à base de dados a partir do contentor onde o n8n corre, e fazê-lo sem abrir a base ao mundo.

Onde está a base de dados

Onde está Como o n8n lá chega
No mesmo compose, noutro contentor Pelo nome do serviço, na rede do Docker. Veja Docker Compose: uma aplicação com a sua base de dados.
No mesmo VPS, fora do Docker localhost dentro do contentor é o próprio contentor, não o VPS. Use o endereço com que o Docker deixa o contentor chegar ao anfitrião (a documentação do Docker explica-o) e confirme que a base escuta nessa interface.
Noutro VPS Por rede privada, ou abrindo a porta só ao IP do n8n. Veja instalar o PostgreSQL num VPS.
Num plano partilhado de hospedagem As portas 3306 e 5432 não estão abertas de fora. Chega-se por túnel SSH. Veja o túnel SSH, passo a passo, e o que o «Remote MySQL» faz em deixar um endereço de fora chegar ao MySQL.

Montar a ligação

1 Crie um utilizador só para o n8n, com direitos apenas sobre as tabelas de que o fluxo precisa. Se o fluxo só lê, dê-lhe só a leitura. Veja criar um utilizador e dar-lhe os privilégios certos e, no PostgreSQL, criar um utilizador e uma base e ligar com o psql.
2 Crie a credencial no n8n: servidor, porta, nome da base, utilizador e palavra-passe. As portas habituais são 3306 no MySQL e 5432 no PostgreSQL. Se a base está noutra máquina, ligue a cifra (SSL) se a base a suportar.
3 Comece por uma consulta de leitura com poucas linhas. Se a credencial e a rede estão certas, o resultado aparece.
4 Passe valores por parâmetros. Os nós permitem enviar a consulta com valores à parte; veja na documentação do nó como. É a defesa contra a injecção de SQL.
5 Limite o que lê. Pedir uma tabela inteira de milhares de linhas a um fluxo gasta memória. Peça só as colunas e as linhas de que precisa, e trabalhe em lotes.
Nunca cole num texto SQL algo que veio de fora (um campo de um formulário, o corpo de um webhook, o assunto de um e-mail). Quem controla esse texto controla a sua base de dados. Use os parâmetros do nó e um utilizador sem direito de apagar.

Duas confusões comuns

Confusão A verdade
A base que o n8n usa por dentro é a minha base São duas coisas. O n8n guarda os seus fluxos e execuções numa base própria (por omissão, um ficheiro interno; a documentação do projecto descreve como usar o PostgreSQL). Os nós ligam-se à sua base, a dos dados do negócio.
MySQL e MariaDB são o mesmo Os planos partilhados de hospedagem usam MariaDB, que fala o mesmo protocolo. O nó de MySQL costuma servir; veja MySQL ou MariaDB: qual corre aqui.
Acentos que viram pontos de interrogação É o conjunto de caracteres. Veja conjuntos de caracteres: utf8mb4.
Faça cópia da base antes do primeiro fluxo que escreve nela. Veja cópias com mysqldump e pg_dump.

Precisa de um VPS onde correr o n8n e a base de dados?

Ver os servidores VPS

VEJA TAMBÉM

Chegar ao MySQL ou ao PostgreSQL por túnel SSH

Criar um utilizador e dar-lhe os privilégios certos

Acesso remoto ao PostgreSQL: o que funciona e o que não

Proteger o n8n: acesso, credenciais e webhooks expostos

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?