Connecting Hasura to an Aiven MySQL Database
If you plan on using Hasura Cloud, which we recommend, follow steps 1 and 2 below. If you're self-hosting a Hasura instance and already have a project running, skip to step 3.
Aiven-hosted MySQL databases are supported from Hasura
Step 1: Sign up or log in to Hasura Cloud
Navigate to Hasura Cloud and sign up or log in.
Step 2: Create a Hasura Cloud project
On the Hasura Cloud dashboard, create a new project:
After the project is initialized successfully, click on
Launch Console to open the Hasura Console in your browser.
On the Hasura Console, navigate to the
Data tab and choose
Connect Existing Database. Choose the MySQL driver and
Connect Existing Database:
We'll provision the database on Aiven in the next step and then return to this page to complete the connection.
Step 3: Create a MySQL DB on Aiven
If you have an existing Aiven MySQL database, you can skip this step and move on to step 4.
Log into the Aiven console.
On the Aiven console, click
+ Create a new service and choose
Scroll down and select the
Service Plan based on your requirements. Then click
Create free service:
Step 4: Allow connections to your DB from Hasura
Services dashboard, click on your DB and scroll down to
Allowed IP Addresses and click on
If you're using Hasura Cloud, you can quickly find your IP address from the
Hasura Cloud IP field on the project's
If you're using a self-hosted solution, you'll need to determine the IP address manually depending on your hosting service.
Add the Hasura IP address that you copied, click on the
Then click on
Step 5: Get the database connection URL
The MySQL connector utilizes JDBC connection strings to connect to the database. The format of the connection string is as follows:
You'll have to transform the connection string provided by Aiven into the format above. Navigate to the
of your database dashboard and use the
Service URI to construct the connection string:
Step 6: Finish connecting the database
Back on the Hasura Console, enter the database URL that we retrieved in step 5:
For security reasons, it is recommended to set database URLs as env vars and using the env vars to connect to the databases in place of the raw database URLs.
Voilà. You are ready to start developing.
For more information on which MySQL features we support, check out this page.