Connection String Builder

Construye connection strings válidos para PostgreSQL, MySQL, MongoDB, Redis y SQL Server.

sys-dev-toolkit.lovable.app/herramientas/connection-string-builder

Herramienta

Connection string
postgresql://app:s3cret@db.example.com:5432/appdb?sslmode=require

Qué problema resuelve

Cada driver espera un formato distinto y un typo rompe el arranque del backend.

Cada base de datos tiene su dialecto para la connection string y un pequeño error de encoding suele terminar en `authentication failed` sin más pistas. Este builder genera URIs válidas para PostgreSQL, MySQL, MongoDB, Redis y SQL Server aplicando percent-encoding a la contraseña y ofreciendo los parámetros comunes (sslmode, replicaSet, authSource).

Formato canónico de un DSN

El patrón es `driver://user:password@host:port/database?options`. Los caracteres especiales de la contraseña (`@`, `:`, `/`, `#`, `?`) deben ir percent-encoded o el parser corta la URI en el sitio equivocado. Por ejemplo, `p@ss` se convierte en `p%40ss`. La herramienta lo hace automáticamente.

TLS/SSL: obligatorio en producción

PostgreSQL usa `sslmode=require|verify-ca|verify-full`. MySQL usa `?ssl-mode=REQUIRED`. MongoDB usa `tls=true` y opcionalmente `tlsCAFile`. Nunca desactives verificación de certificado en producción: expone a MITM. Si tu proveedor cloud da un CA bundle propio (RDS, Cloud SQL), inclúyelo.

Pool y timeouts razonables

Añade `connect_timeout`, `pool_max`, `application_name` (Postgres) para debug en `pg_stat_activity`. Configura reintentos en el cliente, no en la connection string. Para MongoDB replicaSet, especifica al menos dos hosts para que el driver haga discovery.

Casos de uso comunes

  • Configurar variables de entorno en Docker o Kubernetes secrets.
  • Migrar entre proveedores cloud manteniendo la app estable.
  • Depurar errores de autenticación por caracteres mal escapados.

Referencias oficiales

Preguntas frecuentes

¿Escapa caracteres especiales en la contraseña?

Sí, aplicamos encodeURIComponent al usuario y la contraseña para que símbolos como @ o : no rompan la URI.