MySQL
Overview
MySQL is an open-source relational database management system (RDBMS) known for its reliability, performance, and ease of use. It is widely used for a variety of applications, from small to large enterprise projects, supporting structured data storage, retrieval, and management with SQL queries. MySQL offers a comprehensive ecosystem with support for advanced features, such as replication, transactions, and full-text indexing, making it a versatile choice for integrating with BI tools. Rill supports natively connecting to and reading from MySQL as a source by using the Go MySQL Driver.
When connecting to MySQL, an appropriate Data Source Name (DSN) will need to be specified in the connector's configuration using the following syntax:
<username>:<password>@<protocol>(<hostname>:<port>)/<database_name>
- username and password should correspond to the user that Ril will be using to connect to MySQL
- protocol will typically be tcp (unless otherwise specified)
- hostname and port should correspond to the respective ip address / hostname and port (default 3306) of your MySQL database
- database_name should correspond to the database in MySQL that you are using
Local credentials
When using Rill Developer on your local machine (i.e. rill start
), you have the option to specify a connection string when running Rill using the --env
flag.
An example of passing the connection DSN to Rill via the terminal:
rill start --env connector.mysql.dsn="mysql_user:mysql_password@tcp(localhost:3306)/mysql_db"
Alternatively, you can include the connection string directly in the source YAML definition by adding the database_url
parameter.
An example of a source using this approach:
type: "source"
connector: "mysql"
sql: "select * from my_table"
dsn: "mysql_user:mysql_password@tcp(localhost:3306)/mysql_db"
This second approach is generally not recommended outside of local development because it places the connection details (which may contain sensitive information like passwords!) in the source file, which is committed to Git.
For more information about available source properties / configurations, please refer to our reference documentation on Source YAML.
If this project has already been deployed to Rill Cloud and credentials have been set for this source, you can use rill env pull
to pull these cloud credentials locally (into your local .env
file). Please note that this may override any credentials that you have set locally for this source.
Cloud deployment
Once a project with a MySQL source has been deployed, Rill requires you to explicitly provide the connection string using the following command:
rill env configure
Note that you must cd
into the Git repository that your project was deployed from before running rill env configure
.
If you've configured credentials locally already (in your <RILL_PROJECT_DIRECTORY>/.env
file), you can use rill env push
to push these credentials to your Rill Cloud project. This will allow other users to retrieve / reuse the same credentials automatically by running rill env pull
.