2.6 KiB
2.6 KiB
Sequel Ace + Coolify Staging MySQL (Reliable Access Guide)
This guide is for when Sequel Ace SSH mode fails against a Coolify-hosted app where MySQL is internal-only.
Why Sequel Ace built-in SSH can fail on Coolify
In many Coolify setups, MySQL is not exposed on host 127.0.0.1:3306.
It runs only inside Docker network (service name like mysql), so direct SSH-to-host + DB host 127.0.0.1 will fail.
Recommended method (works with internal-only MySQL)
Use a terminal tunnel to the current MySQL container IP, then connect Sequel Ace to local 127.0.0.1:3307.
1) On your Mac: get MySQL container IP from server
Replace:
SERVER_USERSERVER_HOST
MYSQL_IP=$(ssh SERVER_USER@SERVER_HOST "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \$(docker ps --format '{{.ID}} {{.Names}}' | awk '/mysql|mariadb/{print \$1; exit}')")
echo "$MYSQL_IP"
If this prints an IP (example 172.18.0.5), continue.
2) Create SSH tunnel (keep terminal open)
ssh -N -L 3307:${MYSQL_IP}:3306 SERVER_USER@SERVER_HOST
Keep this terminal open while using Sequel Ace.
3) Create Sequel Ace connection
Use Standard (not SSH) because tunnel is already created:
- Name:
Dewemoji Staging - Host:
127.0.0.1 - Port:
3307 - User: your MySQL user (example
dewesql) - Password: your MySQL password
- Database:
dewemoji
Click Test Connection then Connect.
4) Verify database quickly
Run in Sequel Ace:
SHOW TABLES;
SELECT NOW();
Troubleshooting
A) Connection refused
- Tunnel terminal is closed, or command failed.
- Re-run step 2.
B) Access denied for user
- Wrong DB username/password.
- Confirm app/coolify env values for DB credentials.
C) Unknown database
- Wrong DB name.
- Check with:
SHOW DATABASES;
D) No MYSQL_IP returned
- Server user cannot run Docker commands.
- Test manually:
ssh SERVER_USER@SERVER_HOST "docker ps --format '{{.Names}}'" - If permission denied, use a user with Docker access.
E) Tunnel worked yesterday but not today
- MySQL container IP changed after redeploy/restart.
- Re-run step 1 and step 2 each session.
Optional: one-liner (resolve + tunnel)
ssh -N -L 3307:$(ssh SERVER_USER@SERVER_HOST "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \$(docker ps --format '{{.ID}} {{.Names}}' | awk '/mysql|mariadb/{print \$1; exit}')"):3306 SERVER_USER@SERVER_HOST
Security note
Do not expose MySQL publicly in Coolify just for GUI access.
Tunnel-only access is safer for staging and production.