Ressources · Intégration n8n

Intégration MySQL n8nAutomatiser MySQL avec n8n.

Ta base MySQL stocke déjà ce que tes outils se repassent en CSV. L’intégration MySQL n8n expose 6 opérations sur une ressource Database, du Select filtré à la requête SQL libre. Côté MySQL, aucun nœud trigger : c’est un Schedule Trigger ou un Webhook qui lance l’exécution.

Avis vérifiés sur Trustpilot · Agence IA, automatisation & growth

Pourquoi automatiser

Que fait vraiment l’intégration MySQL n8n ?

L’intégration MySQL n8n, c’est le nœud MySQL livré avec n8n : une ressource Database et 6 opérations qui parlent à ton serveur, Select, Insert, Insert or Update, Update, Delete, plus Execute SQL pour tout le reste. n8n ouvre la connexion avec le credential enregistré (l’identifiant stocké une fois dans n8n), exécute l’instruction et renvoie les lignes au nœud suivant sous forme d’items. Rien à installer côté base.

Premier cas, le plus courant : sortir des chiffres sans ouvrir de client SQL. Un Schedule Trigger se déclenche le premier lundi du mois, database.select lit les factures du mois écoulé avec une condition sur la colonne de date, et les lignes atterrissent dans un onglet Google Sheets que la compta consulte sans rien demander à personne.

Deuxième cas, le sens inverse : des données arrivent et doivent être rangées. Une pièce jointe récupérée dans Gmail, un formulaire rempli sur le site, un fichier lu par un nœud précédent, tout finit dans database.insert. Quand les noms des champs correspondent déjà aux noms des colonnes, Auto-Map Input Data to Columns fait le travail de mapping.

Troisième cas, garder deux systèmes alignés. database.upsert prend une Column to Match On, souvent un email ou un identifiant externe, et tranche ligne par ligne : mise à jour si la ligne existe, création sinon. Relancer le même import ne crée rien en double, ce qui rend la planification tranquille.

Quand une opération manque, il n’y a pas d’API de secours à appeler ici : MySQL parle SQL, donc database.executeQuery sert de porte de sortie. Jointures, agrégats, clause WHERE sur deux colonnes, tout ce que les cinq opérations typées n’exposent pas passe par là, avec Query Parameters à la place d’une concaténation de chaînes. Les équipes qui automatisent déjà Postgres retrouveront exactement la même organisation du nœud.

Deux limites à connaître avant de dessiner le workflow. Il n’existe pas de nœud trigger MySQL : chaque exécution démarre sur un Schedule Trigger, un Webhook ou le trigger d’un autre outil. Et le nœud renvoie les valeurs DECIMAL sous forme de chaînes par défaut, ce qui surprend le premier workflow qui essaie de les additionner. Le reste relève du travail de base classique : l’Avis n8n détaille le comportement de la plateforme sur de gros volumes, et la Formation n8n reprend la construction de ces workflows pas à pas.

Connexion

Comment connecter MySQL à n8n ?

  1. 01

    Créer l’utilisateur de la base

    Tout commence côté MySQL : il faut un compte utilisateur sur le serveur, avec les droits qui correspondent à ce que le workflow va faire. Un droit de lecture suffit pour un nœud qui se contente de Select ; les insertions, mises à jour et suppressions demandent un droit d’écriture sur les tables visées. Ce nom de compte et son mot de passe iront dans User et Password.

  2. 02

    Remplir la connexion à la base

    Dans n8n, ouvre le menu Credentials et crée un credential MySQL, réutilisable dans tous les workflows depuis la liste déroulante du nœud. Host reçoit le nom d’hôte ou l’adresse IP, Database le nom de la base, Port le port d’écoute, soit 3306 s’il n’a pas bougé. Connect Timeout se compte en millisecondes et vaut 10000 par défaut.

  3. 03

    Activer SSL ou un tunnel SSH

    SSL attend le contenu de tes certificats : ca.pem dans CA Certificate, client-key.pem dans Client Private Key, client-cert.pem dans Client Certificate. SSH Tunnel glisse la connexion dans un canal chiffré : SSH Host, SSH Port, SSH User, mot de passe ou clé.

Actions

Que sait faire le nœud MySQL ?

Le nœud MySQL expose 6 opérations sur 1 ressources. Pour chacune : le nœud tel que tu le configures dans n8n, les champs obligatoires, et nos notes de terrain.

Matrice ressources × opérations
RessourceUpdateDeleteExecute SQLInsertSelectInsert or Update
Database✓✓✓✓✓✓

Database

6 opérations
01

Delete table or rows

database.deleteTable

Ce que tu vois dans n8n

Notes & cas d'usage

Le champ Command mérite une relecture avant chaque exécution : vider la table, effacer une sélection de lignes ou supprimer la table pour de bon.

Paramètres clés

  • Command : truncate efface les données et conserve la structure de la table, delete ne retire que les lignes qui répondent aux conditions, drop supprime les deux définitivement.
  • Select Rows : les conditions utilisées quand Command vaut delete ; laissé vide, toutes les lignes de la table y passent.
  • Combine Conditions : AND ne garde que les lignes qui remplissent toutes les conditions, OR celles qui en remplissent au moins une.
Cas d’usage
vider une table de préparation avant un rechargement nocturne, ou effacer les lignes d’un client qui demande la suppression de ses données.
02

Execute a SQL query

database.executeQuery

Ce que tu vois dans n8n

Notes & cas d'usage

Tout ce que les opérations typées ne couvrent pas passe par ici : la requête part telle quelle vers le serveur, jointure, agrégat ou mise à jour conditionnelle.

Paramètres clés

  • Query : requis, l’instruction SQL, par exemple SELECT id, name FROM product WHERE id < 40.
  • Query Parameters : une liste de valeurs séparées par des virgules, appelées dans la requête sous la forme $1, $2, $3 ; la parade contre l’injection SQL, puisque les données n’entrent jamais dans la requête.
  • Query Batching : single envoie une requête pour tous les items, independently une requête par item, transaction annule tout si une instruction échoue.
Cas d’usage
modifier une ligne identifiée par deux colonnes, ce que l’opération Update ne sait pas cibler.
03

Insert rows in a table

database.insert

Ce que tu vois dans n8n

Notes & cas d'usage

Un item entrant, une ligne créée. Le nœud rédige l’instruction INSERT à ta place, la seule question étant la correspondance entre champs de l’item et colonnes de la table.

Paramètres clés

  • Data Mode : autoMapInputData associe les propriétés de l’item aux colonnes qui portent le même nom, defineBelow laisse régler chaque colonne de destination à la main.
  • Values to Send : en mode manuel, les paires colonne et valeur écrites dans la ligne, souvent via une expression comme {{ $json.email }}.
  • Replace Empty Strings with NULL : à activer quand les lignes sortent d’un tableur, où les cellules vides arrivent sous forme de chaînes vides.
Cas d’usage
charger un CSV dans une table MySQL, ou archiver chaque formulaire reçu.
04

Insert or update rows in a table

database.upsert

Ce que tu vois dans n8n

Notes & cas d'usage

Cette opération existe pour éviter les doublons : elle cherche la ligne, la met à jour si elle la trouve, la crée sinon.

Paramètres clés

  • Column to Match On : requis, la colonne qui sert à retrouver la ligne à mettre à jour ; elle doit être unique et l’opération n’y touche jamais.
  • Value of Column to Match On : la valeur comparée à cette colonne, les items sans correspondance créant de nouvelles lignes.
  • Data Mode : automatique quand les propriétés de l’item portent déjà le nom exact des colonnes, manuel quand la source les nomme autrement.
Cas d’usage
une table clients alimentée par un export CRM, appariée sur la colonne email, pour qu’un second import mette à jour au lieu de dupliquer.
05

Select rows from a table

database.select

Ce que tu vois dans n8n

Notes & cas d'usage

La lecture se configure sans écrire une ligne de SQL : choix de la table, conditions, tri, et les lignes ressortent en items exploitables par la suite du workflow.

Paramètres clés

  • Return All : coché, toutes les lignes qui répondent aux conditions remontent ; décoché, Limit fixe le nombre maximal de lignes renvoyées.
  • Select Rows et Operator : les conditions, dont LIKE, où % remplace un nombre quelconque de caractères et _ un seul.
  • Sort et Direction : l’ordre du résultat, ASC ou DESC, avant sa sortie du nœud.
  • Output Columns : ne garder que les colonnes dont le nœud suivant a besoin.
Cas d’usage
récupérer chaque matin les commandes de la veille pour alimenter un rapport.
06

Update rows in a table

database.update

Ce que tu vois dans n8n

Notes & cas d'usage

Rien de neuf ne sort d’ici : le nœud retrouve les lignes qui correspondent et réécrit les colonnes listées, sans jamais en créer une nouvelle.

Paramètres clés

  • Column to Match On : requis, la colonne qui identifie les lignes à modifier, et que l’écriture laisse intacte.
  • Value of Column to Match On : la valeur à laquelle elle est comparée, souvent {{ $json.id }} transmis par le nœud précédent.
  • Values to Send : les colonnes à réécrire et leurs nouvelles valeurs.
Cas d’usage
faire passer une commande au statut payé dès la réception du paiement. Une limite à retenir : une table dont les lignes s’identifient par deux colonnes ne peut pas être ciblée ici, et c’est Execute SQL qui prend le relais.
Besoin d'aide

Besoin d'aide pour automatiser MySQL avec n8n ?

L'équipe te répond directement.

Chaque message est lu par une personne.

FAQ

MySQL et n8n : les questions fréquentes

01L’intégration MySQL n8n est-elle gratuite ?
Oui. Le nœud MySQL est livré avec n8n : rien à installer, aucun coût supplémentaire côté n8n, que tu passes par n8n Cloud ou par une instance auto-hébergée en Community Edition sous licence Sustainable Use. Un workflow se comporte de la même façon dans les deux cas. Ce qui n’entre pas dans le calcul, c’est le coût du serveur MySQL lui-même, qui dépend de l’endroit où vit la base et ne regarde pas n8n. Le credential se crée une seule fois dans le menu Credentials et se réutilise partout : un deuxième workflow sur la même base ne coûte que le temps de le choisir dans la liste.
02Quels identifiants demande le nœud MySQL ?
Une connexion à la base, et c’est la seule méthode d’authentification proposée par le nœud. Tu remplis Host, Database, User, Password et Port, avec 3306 comme port MySQL habituel, plus un Connect Timeout exprimé en millisecondes. Le compte doit exister au préalable sur le serveur MySQL, avec les droits correspondant à ce que n8n va faire : lecture seule, ou lecture et écriture si le workflow insère et met à jour. Deux options renforcent la connexion. SSL attend le contenu de tes fichiers ca.pem, client-key.pem et client-cert.pem. SSH Tunnel fait transiter le trafic dans une connexion chiffrée, avec un mot de passe ou une clé privée et sa passphrase.
03Quelles sont les limites du nœud MySQL dans n8n ?
Trois méritent d’être connues avant de construire. La lecture s’arrête tôt si Return All n’est pas coché, puisque Limit plafonne alors le nombre de lignes renvoyées. L’opération Update ne cible qu’une seule colonne : une table dont les lignes s’identifient par deux colonnes doit passer par Execute SQL, où la clause WHERE peut nommer les deux. Et les types ne survivent pas toujours au trajet : les valeurs DECIMAL reviennent sous forme de chaînes, volontairement, pour éviter la perte de précision des nombres JavaScript, sauf si tu actives Output Decimals as Numbers. Pour les colonnes NUMERIC et BIGINT de plus de 16 chiffres, règle Output Large-Format Numbers As sur text.
04Un workflow peut-il réagir à une nouvelle ligne dans MySQL ?
Pas tout seul. n8n ne fournit pas de nœud trigger MySQL, donc rien ne surveille la base à ta place. Un workflow qui touche à MySQL démarre ailleurs : un Schedule Trigger qui se déclenche à intervalle fixe, suivi d’un Select qui lit les lignes ajoutées depuis la dernière exécution ; un Webhook n8n, c’est-à-dire une URL qu’un service tiers appelle quand quelque chose se passe chez lui ; ou le trigger d’un autre outil du workflow. La version planifiée couvre la plupart des besoins, et plus tu veux être proche de l’instant, plus l’intervalle se raccourcit. Garde un œil sur Connections Limit quand plusieurs workflows interrogent le même serveur : une valeur trop haute se paie en performance.
05n8n ou Make pour MySQL ?
Ça dépend surtout de l’endroit où tu veux que les données restent. n8n s’installe sur ton propre serveur avec Docker ou npm, ou s’utilise sur n8n Cloud, et le workflow est identique dans les deux cas : une base qui ne sort jamais de ton réseau peut être automatisée par une instance qui n’en sort pas non plus. Make est hébergé uniquement, sans option d’auto-hébergement, et se facture à l’opération, ce qui change le calcul dès qu’un workflow boucle sur des milliers de lignes. Les deux construisent les workflows visuellement. Le vrai test, ce sont tes contraintes : hébergement, maîtrise des données, modèle de coût, et la logique visuelle que ton équipe lit le plus vite.