Choose a connection method
There are three ways to connect a database, and you can mix them freely across projects. Connects to MySQL, MariaDB, PostgreSQL and self-hosted MongoDB 4.4 to 9.0. SQLite is supported for pasted analysis only.
Path A: direct or SSH connection
- Add the connection. Open your project (or start one from the sidebar's Projects +), select Add database, and enter the engine, endpoint, least-privilege username, password, database, and optional schema.
- Choose the transport. Select Direct (no host) for a reachable database, or select an SSH host to connect through a bastion. To connect over SSH, first link the host to the project with Link host.
- Pass readiness. Save the connection and resolve required checks. MySQL and MariaDB need Performance Schema or the slow-query log; PostgreSQL uses
pg_stat_statements; MongoDB needs the query profiler and an account with theclusterMonitorrole (see the MongoDB user). - Create or open a project. Every connection lives in a project: the sidebar's Projects group lists yours, and its + starts a new one. A connection alone is not a runnable analysis schedule.
- Run now. In the project's schedule settings, select Manual, choose Run Now, then open View activity when it appears.

Network access: the addresses dbtempo connects from
A Direct or SSH connection is dialed from dbtempo's servers, not from your network, so your firewall, security group or pg_hba.conf has to let those servers in.
- Direct: allow them on the database port (5432, 3306, ...).
- SSH host: allow them on the SSH host's port (usually 22). The SSH host then reaches the database itself.
- dbtempo agent: nothing to allow. The agent connects out from your network.
Example: a Postgres on port 5432 behind an AWS security group needs one inbound rule per address, TCP 5432 from <address>/32. On MySQL, CREATE USER 'dbtempo_readonly'@'<address>' once per address also limits the login to them.
Path B: dbtempo agent (CLI daemon)
The in-app installer at Databases → Install dbtempo has copy-ready commands for each platform.
# 1. Install and verify
brew install dbtempo/tap/dbtempo
dbtempo --version
# 2. Authenticate (paste your API key at the prompt; it is not shown)
dbtempo login
# 3. Start the agent, then configure
brew services start dbtempo
dbtempo init
# 4. Verify and run
dbtempo doctor
dbtempo runThe agent runs each project on its nightly schedule, so there is no separate scheduling step. In a script, pass the key in the environment instead of the prompt: DBTEMPO_API_KEY=... dbtempo login. Never put the key on the command line, where it is saved in shell history.
Each host needs its own API key: a key belongs to the first host that logs in with it. The installer's login step has a Create a key for this host button that makes one and shows it once.
What is submitted
dbtempo collects query statistics, example query text, schema metadata, and execution plans needed for analysis. Raw table rows are not submitted. With direct and SSH connections, dbtempo stores encrypted database credentials. With the dbtempo agent, credentials written into the agent's local configuration stay in your environment; a password entered in the dashboard is stored encrypted and handed to the agent in the reply to its own request.
