MySQL

Managed MySQL — the database next to your containers

A relational database for the state your application keeps — with databases and users declared as configuration, a tier for every failure tolerance, and backups that are always on. Managed through the same console, CLI and Terraform provider as the rest of your platform.

The database your code already speaks

MySQL 8.4 LTS, unmodified. Your ORM, migration tool and client library connect the way they always have — point them at the instance handle on port 3306 and keep the code you have.

Databases and users as configuration

List the databases you want and the user that owns each one. The platform creates them, generates the passwords and keeps the instance matching the list — and never touches the schemas you create yourself over SQL.

Pick your failure tolerance

A single node that recovers from its own disk. A primary with read replicas for read-heavy applications. Or Group Replication across three or five members with automatic failover — the console shows the derived node count before you create anything.

Backups you cannot forget

Every database is dumped on a schedule you set, and the binary log ships off the instance every 15 minutes. There is no switch to turn backups off — the recovery window is always there when a migration goes wrong.

Platform features

A database with the platform built in

Everything a relational database needs in production — provisioning, security, backups and visibility — without operating any of it.

Tiers

Single, replicated and HA

One node, a primary with one or two read replicas, or a three- or five-member group with automatic failover. Plans pair CPU and memory per node, from 0.5 vCPU / 1 GB to 8 vCPU / 32 GB.

Durability

Always-on backups

Scheduled per-database dumps plus binary logs shipped every 15 minutes, with the recovery window shown per region in the console and the CLI.

Security

Encrypted, private, allowlisted

Encryption at rest from the day you create the instance. Project-private by default; external access requires TLS and an IP allowlist, enforced by the platform.

Access

External clients and phpMyAdmin

Reach the instance from anywhere you allowlist over verified TLS, or open phpMyAdmin in the browser for a session of work — it switches itself off when the time is up.

Credentials

Generated, revealed, rotated

Every password is generated by the platform and never returned in a read. Reveal or rotate one when you need it — and every reveal is in the activity log.

Automation

Console, CLI and Terraform

Create and manage instances from the console, from the Reis CLI in flag or YAML mode, or declaratively through the Terraform provider — the same resource model as every other Bahriya resource.

Use cases

Where relational fits

Pick the tier that matches how much a minute of downtime costs you.

Web applications

The database behind your HTTP containers — Laravel, Rails, Django, Spring or anything with a MySQL driver. Give each service its own database and user on one instance, or its own instance.

Read-heavy products

Catalogues, content and dashboards on the replicated tier — writes to the primary, reads spread across replicas through a read-only endpoint.

Systems of record

Orders, ledgers and accounts on the highly available tier, where every acknowledged write is held by a majority of the group and a failed primary is replaced automatically.

Migrations and integrations

Move a database in from elsewhere, or let a reporting tool hosted outside the platform read it — over TLS, from the addresses you allowlist, on a port reserved for your instance.

What you get on day one

Guided provisioning

Tier, plan, storage, databases and regions with sensible defaults and a derived node count before you create.

Per-node sizing

CPU, memory and storage are per node, so the node count shown on the form is the multiplier.

Operational visibility

Status, metrics, logs, connection endpoints and the backup window in the console, with every change in the activity log.

Documented end to end

Tiers, databases and users, external access, phpMyAdmin and backups — covered in the knowledgebase with CLI and Terraform examples.

Coming Soon

Managed services roadmap

Planned for later in 2026/2027, timeline subject to change.

PostgreSQL

Managed PostgreSQL with automated backups, point-in-time recovery, and regional deployment. Advanced SQL features, JSONB support, and extensions for modern application workloads.

CouchDB

A globally distributed, multi-region document database with built-in replication. Conflict-free sync across regions for offline-first applications and geo-distributed NoSQL workloads.

S3 Object Storage

S3-compatible object storage for files, media, backups, and static assets. Accessible from your containers or directly via standard S3 APIs and client libraries.

CDN

Global content delivery network for static assets, media, and API acceleration. Edge caching across multiple PoPs with automatic origin pull from your containers or object storage.

API Gateway

Your own dedicated API gateway in front of your services. JWT/OAuth2/OIDC and key auth, fine-grained rate limiting and quotas, request/response transformations, circuit breakers, canary releases and traffic splitting, gRPC and WebSocket proxying, and rich per-route analytics — all configured declaratively via Reis or the Console.

RabbitMQ

Managed RabbitMQ for asynchronous messaging between containers. Multi-region clusters, project-private networking, and per-node billing — same operational model as Memcached.

Run MySQL without operating MySQL

Create an instance next to your containers, declare your databases, and point your application at it.