MySQL
Introduction
Hasura enables you to connect to MySQL databases to automatically build a rich GraphQL API based on your database schema.
At present, our MySQL integration is available in Hasura Cloud and Docker environments, where you can run Hasura GraphQL Engine and connect the MySQL GraphQL Data Connector to it. For more information on GraphQL Data Connectors check out our blog post on the topic.
To get started with MySQL:
- In Hasura Cloud, check out our Getting Started with MySQL in Hasura Cloud guide
- In a Docker environment, check out our Getting Started with Docker guide
We have Helm charts available for deploying Hasura on Kubernetes. Check out
more information here and see the
enterprise-stack
here.
- Hasura GraphQL Engine
v2.24.0
onwards - Hasura supports most databases with standard implementations of MySQL 8.0 and higher including: Amazon RDS, Amazon Aurora, Google Cloud SQL and Digital Ocean.
- PlanetScale and certain other providers are unsupported.
Hasura currently supports queries, mutations (INSERT, UPDATE, DELETE), table relationships, remote relationships and permissions on MySQL.
Note that Hasura doesn't yet support the ability to modify the database schema for MySQL, so the database you connect to should already contain tables and data. You should also ideally have access to it outside of Hasura to modify the schema.
Feature Support
Feature | MySQL |
Remote Relationships | ✅ |
Views | ✅ |
Default Values | ✅ |
Queries
Feature | MySQL |
Simple | ✅ |
Nested Object | ✅ |
Aggregation | ✅ |
Filter / Search | ✅ |
Sort | ✅ |
Distinct | ✅ |
Paginate | ✅ |
Multiple Arguments | ✅ |
Multiple Queries | ✅ |
Variables / Aliases / Fragments | ✅ |
Mutations
Feature | MySQL |
Insert | ✅ |
Upsert | ❌ |
Update | ✅ |
Delete | ✅ |
Multiple per Request | ✅ |
Subscriptions
Feature | MySQL |
Value of Field | ❌ |
Updates to Rows | ❌ |
Value of Derived Field | ❌ |
Streaming Subscriptions | ❌ |
Event Triggers
Feature | MySQL |
INSERT | ❌ |
UPDATE | ❌ |
DELETE | ❌ |
MANUAL | ❌ |
Coming soon for MySQL
Managing data with the Hasura Console
The Hasura Console is a web UI that allows you to manage your data and metadata. It is available at
http://localhost:8080/console
when you run Hasura locally, or from your project's Console endpoint when you use
Hasura Cloud.
The data-management features (such as creating tables) are available in the Data
tab. You can access your GraphQL API
in the API
tab and interact with it using the GraphiQL interface.
We recommend using your preferred MySQL client instead. The Hasura Console is designed to be a tool for managing your GraphQL API, and not a full-fledged database management tool.
Resources
- Check out the Getting Started with Docker guide.
- Connect a Google Cloud SQL for MySQL database.
- If you're interested in learning more about MySQL, check out this tutorial from our Learn site.