Managed PostgreSQL, MySQL and Valkey are here
Run a database without running a database server: TLS, daily backups, weekly patches and private networking come with it.
You can now create managed databases from the console, the CLI and the API. We run the server, the backups and the patching; you get a connection string.
Engines
PostgreSQL: 17, 16: 5432, or 25061 for pooled connections through PgBouncer
MySQL: 8.4: 3306
Valkey (Redis-compatible): 8: 6379
Private by default
Every database gets a private address that VMs in the same project can reach. A public endpoint is off unless you turn it on, and even then only the IP addresses and ranges you list as trusted sources can connect. TLS is required on every connection, and you can download the CA certificate if your client checks the server.
What we look after
Backups run daily and are kept for 7 days. Restore or fork builds a new cluster from any of them while the original keeps running.
Patches: minor versions and OS updates roll out once a week, in a one-hour maintenance window you choose.
Storage can grow without downtime. It cannot shrink later, so add it when you need it.
Deleting keeps a final backup for 7 days, in case you change your mind.
One user per app
PostgreSQL and MySQL start with an admin user and a defaultdb database. Add a separate user for each app on Users & databases, so you can rotate or revoke one without touching the others. Every time a password is shown, it is recorded in the activity log.
App Platform apps that attach a database get their own user and connection string automatically. See From a Git repository to HTTPS.
Get started
Open Databases → Create database, or from a terminal:
bn db options
bn db create shop-db --engine postgres --plan db-2 --wait
bn db uri shop-db
bn db options lists the engines, versions and plan names such as db-2. Prices for each size are on the managed databases page and in the create form. Billing starts when the database is ready.