Install
openclaw skills install mysql-managerManage a shared MySQL Docker container for local dev environments. Handles container lifecycle, database creation/removal, and cross-instance data dumps. Designed to work alongside proxy-manager and worktree-manager.
openclaw skills install mysql-managerManages the shared MySQL Docker container used by local dev instances.
mysql-manager/
├── docker-compose.yml # MySQL 8.0 container
└── run.sh # lifecycle + db admin CLI
The MySQL container runs on the shared Docker network (nginx-proxy_net by default), making it accessible to all app containers by hostname (codai_db). Data is persisted in a named volume (mysql_data).
./run.sh start # start MySQL container
./run.sh stop # stop container (data persists in volume)
./run.sh status # container status + list databases
./run.sh wait # block until MySQL is ready (for scripts)
./run.sh create-db <name> # CREATE DATABASE IF NOT EXISTS
./run.sh drop-db <name> # DROP DATABASE (interactive confirm)
./run.sh dump <src> <dest> # mysqldump src | mysql dest
./run.sh list-dbs # SHOW DATABASES (filtered)
cd mysql-manager && ./run.sh start
On first run, Docker creates the volume and initializes codai_main.
./run.sh create-db codai_alpha
./run.sh dump codai_main codai_alpha
./run.sh drop-db codai_alpha # prompts for confirmation
./run.sh status
Start MySQL before starting any app instances:
proxy-manager: ./run.sh start (creates the shared Docker network)mysql-manager: ./run.sh start (joins the shared network)worktree-manager: ./run.sh start <instance>Set via environment variables or a .env file in mysql-manager/:
| Variable | Default | Purpose |
|---|---|---|
MYSQL_CONTAINER | codai_db | Container name |
MYSQL_ROOT_PASSWORD | secret | MySQL root password (primary) |
MYSQL_ROOT_PASS | (fallback) | Legacy alias; MYSQL_ROOT_PASSWORD takes precedence |
MYSQL_MAIN_DB | codai_main | Primary database name |
MYSQL_PORT | 3307 | Host port (maps to 3306) |
CODAI_NETWORK | nginx-proxy_net | Shared Docker network name |
MYSQL_MAIN_DB — it is the source of truth for snapshots.drop-db command always prompts for confirmation.^[a-z][a-z0-9_]{0,62}$ before any SQL or shell operation.stop preserves data in the Docker volume. Use docker compose down -v only when you intentionally want to delete persisted data.restart: unless-stopped — it will resume after a Docker daemon restart. Run ./run.sh stop when done.MYSQL_PORT) is bound to 127.0.0.1 only. Set a non-default MYSQL_ROOT_PASSWORD on shared machines.codai_db) is the hostname used by backend apps to connect.proxy-manager — manages the nginx-proxy that routes traffic to app instances (start this first)worktree-manager — manages app instances and git worktrees (depends on this plugin)