MySQL
ToolJet can connect to MySQL databases to read and write data.
Connection​
To establish a connection with the MySQL data source, you can either click on the + Add new Data source button located on the query panel or navigate to the Data Sources page through the ToolJet dashboard.

Please make sure the Host/IP of the database is accessible from your VPC if you have self-hosted ToolJet. If you are using ToolJet cloud, please whitelist our IP.
ToolJet requires the following to connect to your MySQL database:
- Username
- Password
- Database Name
- Connection Type
If you are using Hostname as the connection type, you will need to provide the following information:
- Host/IP
- Port
- SSL
- SSL Certificate:
- CA Certificate
- Self-signed Certificate
- None
If you are using Socket as the connection type, you will need to provide the following information:
- Socket Path
Note: It is recommended to create a new MySQL database user so that you can control the access levels of ToolJet.

Querying in SQL Mode​
SQL mode can be used to query MySQL database using SQL queries.
- Create a new query and select the MySQL data source.
- Select SQL mode from the dropdown.
- Enter the SQL query in the editor.
- Click on the Run button to run the query.
Example:
SELECT * FROM users

Parameterized Queries​
ToolJet offers support for parameterized SQL queries, which enhance security by preventing SQL injection and allow for dynamic query construction. To implement parameterized queries:
- Use
:parameter_name
as placeholders in your SQL query where you want to insert parameters. - In the Parameters section below the query editor, add key-value pairs for each parameter.
- The keys should match the parameter names used in the query (without the colon).
- The values can be static values or dynamic values using the
{{ }}
notation.

Example:​
Query: SELECT * FROM users WHERE username = :username
SQL Parameters:
- Key: username
- Value: oliver // or
{{ components.username.value }}
Row Level Security​
In ToolJet, you can set up server-side row-level security to restrict access to specific rows based on custom groups or default user roles. Refer to the Setup Row Level Security guide for more information.
Query Timeout​
You can set the timeout duration for SQL queries by adding the PLUGINS_SQL_DB_STATEMENT_TIMEOUT
variable to the environment configuration file. By default, it is set to 120,000 ms.
Querying in GUI Mode​
GUI mode can be used to query MySQL database without writing queries.
- Create a new query and select the MySQL data source.
- Select GUI mode from the dropdown.
- Choose the operation Bulk update using primary key.
- Enter the Table name and Primary key column name.
- In the editor enter the records in the form of an array of objects.
- Click on the Run button to run the query.
Example:
{{ [ {id: 1, channel: 33}, {id:2, channel:24} ] }}

Query results can be transformed using transformations. Learn more about transformations here.