Docs
Skip to content

MySQL

MySQL_

Run a native MySQL database provisioned for your project and connect to it directly with standard MySQL clients.

4 min read

Raw

Appwrite native MySQL databases give you a managed MySQL instance provisioned for your project. You pick the compute specification, and Appwrite provisions the engine in your project's region with its own storage, networking, and credentials, exposed through a per-database public hostname secured with TLS.

A native MySQL database gives you the raw engine: you connect with the mysql client or any MySQL driver, bring your own ORM and migrations, and use the full feature set of MySQL, with no Appwrite layer in between. If you want Appwrite SDKs, platform permissions, and serverless scaling for app data, use TablesDB for relational data, DocumentsDB for schemaless documents, or VectorsDB for embeddings instead.

Supported versions

Appwrite manages the database container, storage, backups, and networking. You bring the application.

New databases run MySQL 8.4 by default, and you can select MySQL 8.0 on create instead. The database listens on the standard MySQL port, 3306.

The version is selected on create and can be upgraded later. Upgrades run online by provisioning a second instance on the new version, streaming data over with logical replication, and moving traffic once replication is caught up.

A new database starts in a provisioning state and becomes ready within a few minutes. Large specifications or high-availability configurations take longer to schedule; poll the database status or check the databases list until it reports ready.

Regions

A native database lives in the same region as the project that owns it. There is no per-database region selector. Each database gets a unique hostname in the form db-<hash>.<region>.appwrite.center, and data does not leave the region.

Feature overview

Specifications and pricing

Each database runs against one of the following compute specifications, billed monthly:

TierSpecificationCPUMemoryStorageBandwidthConnectionsPrice
Starters-1vcpu-1gb1 core1 GB10 GB50 GB100$10/mo
Standards-2vcpu-2gb2 cores2 GB25 GB200 GB200$20/mo
Standard Pluss-2vcpu-4gb2 cores4 GB50 GB400 GB500$49/mo
Professionals-4vcpu-8gb4 cores8 GB200 GB1 TB1,000$85/mo
Businesss-4vcpu-16gb4 cores16 GB500 GB2 TB2,000$160/mo
Business Pluss-4vcpu-32gb4 cores32 GB1 TB5 TB4,000$299/mo
Enterprises-8vcpu-32gb8 cores32 GB2 TB7.5 TB5,000$425/mo
Enterprise Pluss-8vcpu-64gb8 cores64 GB3 TB10 TB10,000$699/mo

The Storage and Bandwidth columns are the monthly allowances included with each tier. Usage beyond them is billed as overage, and optional features are billed as add-ons on top of the tier price:

Add-onPrice
Storage overage$0.125 per GB per month
Bandwidth overage$0.08 per GB per month
High availability replica100% of the tier price, per replica
Point-in-time recovery20% of the tier price

You can resize between tiers as your workload changes.

Limits

The following limits apply per database. Some are also capped by your plan:

LimitValue
High availability replicas0 - 5
IP allowlist entries100
Backup retention7 days on Pro
Point-in-time recovery window1 - 35 days
Max simultaneous connectionsSet by the specification, from 100 up to 10,000

Billing and plan requirements

Native databases are available on paid plans, and a payment method must be attached to your organization. Each database is billed by the hour against its compute specification, with separate line items for overages and add-ons. See pricing for details.

Was this page helpful?

Share what worked or what we should fix. Once approved, our agents automatically apply suggested updates to the docs.