See llms.txt for all machine-readable content.

MySQL and OpenAI integration

Save yourself the work of writing custom integrations for MySQL and OpenAI and use n8n instead. Build adaptable and scalable Development, Data & Storage, workflows that work with your technology stack. All within a building experience you will love.

How to connect MySQL and OpenAI

Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

MySQL and OpenAI integration: Create a new workflow and add the first step

Generate & test SQL code with GPT/OpenRouter AI and PostgreSQL sandbox

This is the core AI agent used for queryverify.com. Don't trust complex AI-generated SQL queries without double-checking them in a safe environment. That's where queryverify comes in. It automatically creates a test environment with the necessary data, generates code for your task, runs it to double-check for correctness, and handles errors if necessary. If you enable auto-fixing, queryverify will detect and fix issues on its own. If not, it will ask for your permission before making changes during debugging. In the end, you get thoroughly verified code along with full details about the environment it ran in. Setup It is an embedded chat for the website, but you can pin input data and run it on your own n8n instance. Input data sessionId: uuid\_v4. Required to handle ongoing conversations and to create table names (used as a prefix). threadId: string | nullable. If aiProvider is openai, conversation history is managed on OpenAI’s side. This is not needed in the first request—it will start a new conversation. For ongoing conversations, you must provide this value. You can get it from the OpenAIMainBrain node output after the first run. If you want to start a new conversation, just leave it as null. apiKey: string. Your API key for the selected aiProvider. aiProvider: string. Currently supported values: openai, openrouter. model: string. The AI model key (e.g., gpt-4.1, o3-mini, or any supported model key from OpenRouter). autoErrorFixing: boolean. If true, it will automatically fix errors encountered when running code in the environment. If false, it will ask for your permission before attempting a fix. chatInput: string. The user's prompt or message. currentDbSchemaWithData: string. A JSON representation of the database schema with sample data. Used to inform the AI about the current database structure during an ongoing conversation. Please use the '[]' value in the first request. Example string for filled db structure : '{"users":[{"id":1,"name":"John Doe","email":"[email protected]"},{"id":2,"name":"Jane Smith","email":"[email protected]"}],"products":[{"product_id":101,"product_name":"Laptop","price":999.99}]}' Make sure to fill in your credentials: Your OpenAI or OpenRouter API key Access to a local PostgreSQL database for test execution You can view your generated tables using your preferred PostgreSQL GUI. We recommend DBeaver. Alternatively, you can activate the “Deactivated DB Visualization” nodes below. To use them, connect each to the most recent successful Set node and manually adjust the output. However, the easiest and most efficient method is to use a GUI. Workflow Explanation We store all input values in the localVariables node. Please use this node to get the necessary data. OpenAI has a built-in assistant that manages chat history on their side. For OpenRouter, we handle chat history locally. That’s why we use separate nodes like ifOpenAi and isOpenAi. Note that if logic can also be used inside nodes. The AutoErrorFixing loop will run only a limited number of times, as defined by the isMaxAutoErrorReached node. This prevents infinite loops. The Execute_AI_result node connects to the PostgreSQL test database used to execute queries. Guidance on customization This setup is built for PostgreSQL, but it can be adapted to any programming language, and the logic can be extended to any programming framework. To customize the logic for other programming languages: Change instruction parameter in localVariables node. Replace the Execute_AI_result PostgreSQL node with another executable node. For example, you can use the HTTP Request node. Update the GenerateErrorPrompt node's prompt parameter to generate code specific to your target language or framework. Any workflows built on top of this must credit the original author and be released under an open-source license.

Popular ways to use the MySQL and OpenAI integration

Build your own MySQL and OpenAI integration

Create custom MySQL and OpenAI workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

MySQL supported actions

OpenAI supported actions

MySQL and OpenAI integration details

MySQL

MySQL

The relational database management system MySQL is free and open-source. Although MySQL includes standalone clients that let users communicate with a MySQL database directly using SQL, it is more frequently used in conjunction with other applications to develop applications that require relational database functionality.

OpenAI

OpenAI

OpenAI, the creator of ChatGPT, offers a range of powerful models including GPT-3, DALL·E, and Whisper. Leverage these models to build AI-powered workflows.

Save engineering resources

Reduce time spent on customer integrations, engineer faster POCs, keep your customer-specific functionality separate from product all without having to code.

Learn more

FAQ about MySQL integrations

Need help setting up your MySQL and OpenAI integration?

Discover our latest community's recommendations and join the discussions about MySQL and OpenAI integration.

  • Mohammadali

    Using variables

    Mohammadali

    Hi guys. I am getting certain data from my SQL database. I want to pass that data to an API. The data I get from the database contains this variable: {{ $input.item }} the problem is that I can not send the value of…

    Open topic
  • Michael Zareno

    MySQL Select and numbers

    Michael Zareno

    I have a MySQL table. Test data consists of an "Amount’ field, and three rows with values, 1000, My JSON input is: [ { "row_number": 2, "Amount": -1000 }, { "row_number": 3, "Amount": -52.23 }, …

    Open topic
  • Shazim Ali

    Pass dynamic perameters to postgres_SQL node query

    Shazim Ali

    hi i am new to n8n basically i have build a chat bot, which is created query on the base of question, but sometime AI based queries are failed to give accurate result, so i have created sql function in vector database, t…

    Open topic
  • Neal A Richardson Sr

    Migration error on fresh deployment of 1.45.2 in kubernetes

    Neal A Richardson Sr

    Describe the problem/error/question I’m trying to spin up an n8n instance in kubernetes as a fresh install. I have a database created and the connection works (it created 22 tables) but then the docker container bombs o…

    Open topic
  • GabrielBackend

    MySql node - Inserting NULL in MariaDB

    GabrielBackend

    Greetings, I’m trying to insert null values into my MariaDB using MySQL node. I need to use Execute SQL mode so I can call functions inside my db and do verifications in case of a update, for example IFNULL. There is n…

    Open topic

Looking to integrate Slack and VirusTotal in your company?

Trusted by teams building smarter workflows.

Why

Why use n8n to integrate MySQL with OpenAI

Handle branching, merging and iteration easily. Pause your workflow to wait for external events.

Re-run single steps to test changes in no time. And pin your data to avoid generating trigger events every time you execute.

Your data is displayed alongside your settings, making edge cases easy to track down.

Use 1000+ workflow templates available from our core team and our community.

Copy and paste, easily import and export workflows.

Simple enough to 
understand + sophisticated 
enough to ship