Exec
Every binary in the distribution, one command away — SQL shells, client tools, and engine-local executables.
The idea
Every engine distribution ships not just a server but a whole toolbox: mysql, psql,
mysqldump, pg_dump, and friends. dbpod’s exec gives you all of them, version-matched to
your engine, without installing anything globally.
Three forms, one command:
1. Open a SQL shell on an instance
dbpod exec dev
Opens the engine’s SQL shell (e.g. mysql for a MySQL instance) with the instance target
pre-connected — no host/port/password juggling. The shell, server, and protocol version
always match because they come from the same distribution.
2. Run any binary from the distribution
dbpod exec dev mysqldump --help
dbpod exec dev mysqldump -h 127.0.0.1 dev > backup.sql
The first argument after the instance name is the binary; everything after is passed through verbatim. This works for any executable in the distribution, not a hardcoded whitelist.
3. Use a distribution without an instance
dbpod exec mysql@8.0.46 mysql --version
Target an engine version instead of an instance and you get a one-shot client from that distribution — handy for connecting to remote servers with a specific client version, or checking tool availability without starting anything.
exec paths
exec injects the distribution’s binary directories into PATH before running your command.
That means:
- Scripts executed via
execcan call sibling tools directly. - Wrapper scripts and engines that shell out to their own utilities keep working.
Why this matters
Version skew between client and server is a classic production headache (mismatched dumps, incompatible flags). With dbpod, the client tooling is the same distribution as the server — by construction, not by discipline.