MySQL Source

MySQL is a relational database management system that stores and manages data.

About

MySQL is a relational database management system (RDBMS) that stores and manages data. It’s a popular choice for developers because of its reliability, performance, and ease of use.

Available Tools

MySQL Source Tools

Tool NameDescription
mysql-execute-sqlA "mysql-execute-sql" tool executes a SQL statement against a MySQL database.
mysql-get-query-planA "mysql-get-query-plan" tool gets the execution plan for a SQL statement against a MySQL database.
mysql-list-active-queriesA "mysql-list-active-queries" tool lists active queries in a MySQL database.
mysql-list-all-locksA "mysql-list-all-locks" tool list all active locks including lock type, lock mode, locked object, lock status, transaction state, query and process id for all objects or specified objects within a designated database or across all databases as requested.
mysql-list-table-fragmentationA "mysql-list-table-fragmentation" tool lists top N fragemented tables in MySQL.
mysql-list-table-statsA "mysql-list-table-stats" tool report table statistics including table size, total latency, rows read, rows written, read and write latency for entire instance, a specified database, or a specified table.
mysql-list-tablesThe "mysql-list-tables" tool lists schema information for all or specified tables in a MySQL database.
mysql-list-tables-missing-unique-indexesA "mysql-list-tables-missing-unique-indexes" tool lists tables that do not have primary or unique indices in a MySQL instance.
mysql-show-query-statsA "mysql-show-query-stats" tool report query execution statistics including execution count, total and average latency, max latency, total rows examined, full table scans, and inefficient index usage for all queries on a specified database or all databases as requested.
mysql-sqlA "mysql-sql" tool executes a pre-defined SQL statement against a MySQL database.

Requirements

Database User

This source only uses standard authentication. You will need to create a MySQL user to login to the database with.

Example

kind: source
name: my-mysql-source
type: mysql
host: 127.0.0.1
port: 3306
database: my_db
user: ${USER_NAME}
password: ${PASSWORD}
# Optional TLS and other driver parameters. For example, enable preferred TLS:
# queryParams:
#     tls: preferred
queryTimeout: 30s # Optional: query timeout duration

Tip

Use environment variable replacement with the format ${ENV_NAME} instead of hardcoding your secrets into the configuration file.

Reference

fieldtyperequireddescription
typestringtrueMust be “mysql”.
hoststringtrueIP address to connect to (e.g. “127.0.0.1”).
portstringtruePort to connect to (e.g. “3306”).
userstringfalseName of the MySQL user to connect as (e.g. “my-mysql-user”).
passwordstringfalsePassword of the MySQL user (e.g. “my-password”).
databasestringfalseName of the MySQL database to connect to (e.g. “my_db”).
queryTimeoutstringfalseMaximum time to wait for query execution (e.g. “30s”, “2m”). By default, no timeout is applied.
queryParamsmap<string,string>falseArbitrary DSN parameters passed to the driver (e.g. tls: preferred, charset: utf8mb4). Useful for enabling TLS or other connection options.
sqlCommenterbooleanfalseOverrides the global --sql-commenter flag for this source. When set, it takes priority; when omitted, the global flag applies.