MySQL
MySQL, run for you
Percona's operator runs MySQL for you with scheduled consistent backups, verified TLS, and replicas when you need read capacity.
Good for
- Web apps and CMSs
- Laravel and Rails backends
- E-commerce catalogues
Sample query
mysql> SELECT status, COUNT(*) AS orders, SUM(total_cents) / 100 AS revenue
FROM orders
WHERE placed_at >= CURDATE() - INTERVAL 7 DAY
GROUP BY status; | status | orders | revenue |
|---|---|---|
| paid | 8,421 | 412930.50 |
| refunded | 97 | 3811.20 |
| pending | 233 | 10422.75 |
Features
MySQL on Databasezy
-
Scheduled logical backups
A consistent mysqldump runs on your plan's schedule and restores into a new instance. Point-in-time recovery is not offered yet.
-
Replicas and HA
Read replicas and a standby on paid plans, managed by the Percona Operator for MySQL.
-
Verified TLS
Connect with ssl-mode VERIFY_IDENTITY against our CA; plain-text connections are refused.
-
Move in with binlog sync
Copy from another MySQL server, then keep it in sync over the binlog until you cut over.
Quick start
Connect to MySQL
Hosts, ports and the CA bundle come from the portal or the CLI after you create an instance. Credentials are shown once and never stored by our control plane.
From the CLI
zb instances create --engine mysql --name mysql-7f3k --waitzb ca > databasezy-ca.pemzb connect mysql-7f3kAt a glance
- Category
- Relational
- Versions
- 8.4, 8.0
- Wire protocol
- mysql · port 3306
- Runtime
- Operator: percona-mysql
- Backup
- mysqldump logical dump to object storage
- Pause
- Scale to zero
- Free tier
- Yes
- Licence
- GPL-2.0
Connection strings and drivers
mysql://app:<password>@mysql-7f3k.us-east.databasezy.com:3306/app?ssl-mode=VERIFY_IDENTITYmysql --host mysql-7f3k.us-east.databasezy.com --port 3306 --user app --password --ssl-mode=VERIFY_IDENTITY --ssl-ca=databasezy-ca.pem --tls-sni-servername=mysql-7f3k.us-east.databasezy.com appimport mysql from "mysql2/promise";
import { readFileSync } from "node:fs";
const db = await mysql.createConnection({
host: "mysql-7f3k.us-east.databasezy.com", port: 3306, user: "app", database: "app",
password: process.env.DB_PASSWORD,
ssl: { ca: readFileSync("databasezy-ca.pem", "utf8") },
});Deployment
Choose where it runs
Placement is chosen per database, so a regulated workload and a side project can live in the same organisation.
-
Standard hosting
Shared cells with namespace isolation, default-deny network policy and an IP allow-list. Available from the free plan up.
- Usage-based compute, billed per running hour
- Spend cap to stop surprises
-
Secure hosting (HIPAA)
This database runs on dedicated nodes in a separate HIPAA cell, under a signed Business Associate Agreement. Available on Team and Enterprise.
- $0.10 per instance-hour on top of compute
- How secure hosting works
-
From the CLI or API
Script instances in CI with the zb CLI or the REST API. Pick the placement per instance.
secure placementzb instances create --engine mysql --placement secure --wait
Plans
MySQL on each plan
Usage-based pricing with a spend cap: you pay a plan fee plus what your instances use.
Free tier
Yes. One f0 instance with a shared vCPU (bursts to 1), 512 MiB of memory and a 500 MB database, no card required. It sleeps after 15 minutes idle and wakes on connect.
Sizes
From s0 (0.25 vCPU, 1 GiB) at $10/mo up to xl32 (32 vCPU, 128 GiB). Resize without changing the connection string.
All sizes and pricesBackups
mysqldump logical dump to object storage. Snapshots only: point-in-time recovery is not available for this engine.
Migrate
Migrate to MySQL from
Copy a database in with a connection string, a file upload or the CLI. Preflight checks the source first and verification compares the copy.
- PlanetScale Connection string Available
- Amazon RDS and Aurora Connection string · continuous sync Coming soon
- Railway Connection string · continuous sync Coming soon
- Aiven Connection string · continuous sync Coming soon
- DigitalOcean Managed Databases Connection string · continuous sync Coming soon
- Google Cloud SQL Connection string · continuous sync Coming soon
- Azure Database Connection string · continuous sync Coming soon
- Self-hosted server Connection string · CLI from your machine · continuous sync Available
- Local files and dumps File upload · CLI from your machine Available
- Docker container CLI from your machine Available
- Another Databasezy instance Instance to instance · continuous sync Coming soon
Documentation
MySQL docs
- MySQL guide Versions, configuration, limits and engine-specific behaviour.
- Connect to MySQL Drivers and connection strings for each language, with TLS verification.
- Backups, restore and PITR Schedules, retention, manual snapshots and restoring into a new instance.
- Pause and resume Scale to zero, wake on connect and pause schedules.
- Secure hosting and the BAA Dedicated nodes, customer-managed keys and HIPAA eligibility.
- Limits Connections, storage and request limits by size and plan.
- CLI reference Every zb command used on this page, with flags.
MySQL questions
Which MySQL versions can I run?
8.4, 8.0. New instances default to 8.4; pick another with --engine-version or in the portal. Minor and patch updates are applied in your maintenance window after a pre-change backup.
Which extensions, modules or plugins are available?
Instances run Percona Server for MySQL, a drop-in compatible build with InnoDB as the storage engine. Loading your own server plugins or UDF libraries is not supported.
How are backups handled?
Backups use mysqldump logical dump to object storage. Paid plans run scheduled backups (Solo: daily, 7-day retention; Team: daily, 14-day retention); the free plan keeps one manual snapshot. MySQL does not support point-in-time recovery; you restore from the most recent snapshot into a new instance.
Is the connection encrypted?
Always. The gateway terminates TLS (1.3 where your client supports it, 1.2 at minimum) and re-encrypts traffic to the database. Plain-text connections are refused. Verify the server with our CA bundle from the portal or zb ca, and restrict access further with the IP allow-list included on every plan.
Can I pause it when I'm not using it?
Yes. Free instances sleep after 15 minutes without connections and wake on the next one; after 7 idle days they are archived with the disk kept. On paid plans you pause on demand or on a schedule. A paused instance bills storage and backups but no compute, and wakes in 10 to 40 seconds.
What are the limits?
The free plan runs one f0 instance with a shared vCPU (bursts to 1), 512 MiB of memory, 20 connections and a 500 MB database. Paid sizes run from s0 (0.25 vCPU, 1 GiB, 60 connections, $10/mo) to xl32 (32 vCPU, 128 GiB, 5,000 connections), with up to 16 TB of disk.
What you get on each plan
Plan features as they apply to MySQL.
| Feature | Free | Solo | Team | Enterprise |
|---|---|---|---|---|
| MySQL on this plan | Yes | Yes | Yes | Yes |
| Plan fee | $0/mo | $25/mo | $599/mo | Custom |
| Largest size | f0 | xl32 | xl32 | xl32 |
| Included per instance | 500 MB | 8 GB | 8 GB | Negotiated |
| Max disk per instance | 1 GB | 1 TB | 16 TB | 16 TB |
| Scheduled backups | 1 manual snapshot | Daily, 7-day retention | Daily, 14-day retention | Hourly, 35-day retention · cross-region copy · immutable |
| Point-in-time recovery | Not available for this engine | Not available for this engine | Not available for this engine | Not available for this engine |
| Read replicas | 0 | 2 | 5 | Unlimited |
| Pause | Sleeps after 15 min idle, wakes on connect | On demand or on a schedule | On demand or on a schedule | On demand or on a schedule |
| Secure hosting (HIPAA) | — | — | Available with a BAA | Available with a BAA |
| Support | Community | Priority | 24x7 dedicated | |
| Uptime SLA | — | — | 99.9% | 99.95% |
Start with MySQL today
The free plan needs no card. Upgrade when you need more, and keep the same endpoint.