DBdeployer is a tool that deploys MySQL database servers easily. This is a port of MySQL-Sandbox, originally written in Perl, and re-designed from the ground up in Go. See the features comparison for more detail.
As of 2026, dbdeployer is actively maintained by the ProxySQL team, with the blessing of the original creator Giuseppe Maxia. We are grateful for Giuseppe's years of work on this project.
Roadmap:
- Modern MySQL support (8.4 LTS, 9.x Innovation releases)
- ProxySQL and Orchestrator integration as deployment providers
- Provider-based architecture for extensibility
- PostgreSQL support (long-term)
See the Phase 1 milestone for current progress.
Documentation updated for version 1.74.0 (23-Mar-2026)
- Installation
- [Manual installation]((docs/wiki/installation.md#manual-installation)
- [Installation via script]((docs/wiki/installation.md#installation-via-script)
- Prerequisites
- Initializing the environment
- Updating dbdeployer
- Main operations
- [Overview]((docs/wiki/main-operations.md#overview)
- [Unpack]((docs/wiki/main-operations.md#unpack)
- [Deploy single]((docs/wiki/main-operations.md#deploy-single)
- [Deploy multiple]((docs/wiki/main-operations.md#deploy-multiple)
- [Deploy replication]((docs/wiki/main-operations.md#deploy-replication)
- [Re-deploy a sandbox]((docs/wiki/main-operations.md#re-deploy-a-sandbox)
- Database users
- Database server flavors
- Getting remote tarballs
- [Looking at the available tarballs]((docs/wiki/getting-remote-tarballs.md#looking-at-the-available-tarballs)
- [Getting a tarball]((docs/wiki/getting-remote-tarballs.md#getting-a-tarball)
- [Customizing the tarball list]((docs/wiki/getting-remote-tarballs.md#customizing-the-tarball-list)
- [Changing the tarball list permanently]((docs/wiki/getting-remote-tarballs.md#changing-the-tarball-list-permanently)
- [From remote tarball to ready to use in one step]((docs/wiki/getting-remote-tarballs.md#from-remote-tarball-to-ready-to-use-in-one-step)
- [Guessing the latest MySQL version]((docs/wiki/getting-remote-tarballs.md#guessing-the-latest-mysql-version)
- Practical examples
- Standard and non-standard basedir names
- Using short version numbers
- Multiple sandboxes, same version and type
- Using the direct path to the expanded tarball
- Ports management
- Concurrent deployment and deletion
- Replication topologies
- Skip server start
- MySQL Document store, mysqlsh, and defaults.
- Installing MySQL shell
- Database logs management.
- dbdeployer operations logging
- Sandbox customization
- Sandbox management
- Sandbox macro operations
- [dbdeployer global exec]((docs/wiki/sandbox-macro-operations.md#dbdeployer-global-exec)
- [dbdeployer global use]((docs/wiki/sandbox-macro-operations.md#dbdeployer-global-use)
- Sandbox deletion
- Default sandbox
- Using the latest sandbox
- Sandbox upgrade
- Dedicated admin address
- Loading sample data into sandboxes
- Running sysbench
- Obtaining sandbox metadata
- Replication between sandboxes
- [a. NDB to NDB]((docs/wiki/replication-between-sandboxes.md#a.-ndb-to-ndb)
- [b. Group replication to group replication]((docs/wiki/replication-between-sandboxes.md#b.-group-replication-to-group-replication)
- [c. Master/slave to master/slave.]((docs/wiki/replication-between-sandboxes.md#c.-master/slave-to-master/slave.)
- [d. Hybrid replication]((docs/wiki/replication-between-sandboxes.md#d.-hybrid-replication)
- [e. Cloning]((docs/wiki/replication-between-sandboxes.md#e.-cloning)
- Using dbdeployer in scripts
- Importing databases into sandboxes
- Cloning databases
- Compiling dbdeployer
- Generating additional documentation
- Command line completion
- Using dbdeployer source for other projects
- Exporting dbdeployer structure
- Semantic versioning
- Do not edit
