Sitios web

Conectarse a tu base de datos de forma remota

Where to find your database credentials, why direct remote connections on port 3306 are refused, and how to connect a desktop tool through an SSH tunnel instead.

Dónde encontrar las credenciales de su base de datos, por qué se rechazan las conexiones remotas directas en el puerto 3306, y cómo conectar una herramienta de escritorio a través de un túnel SSH en su lugar.

Cada sitio de alojamiento web de KapsuleHost con una base de datos obtiene su propia base de datos, su propio usuario de base de datos, y credenciales que puede leer en cualquier momento. Lo que no puede hacer es conectarse a ella directamente a través de internet, y eso es deliberado. Esta guía cubre las credenciales, las dos formas admitidas de acceso, y cómo configurar el túnel que necesitan las herramientas de base de datos de escritorio.

Encontrar Sus Credenciales

Vaya a Websites, haga clic en el sitio, luego Files, luego Database.

La página muestra cinco cosas:

CampoValor
Host127.0.0.1
Port3306
Databaseel nombre de su base de datos
Usernamesu usuario de base de datos
Passwordenmascarada, con un botón de revelación y un botón de copia

La contraseña no es una revelación única. Puede volver y leerla cuando la necesite, así que no hay necesidad de guardarla por separado.

El servidor de base de datos es MariaDB 10.11, que es compatible con MySQL. Eso importa de una forma práctica: un volcado exportado desde un servidor MySQL reciente puede contener intercalaciones que MariaDB no reconoce, y la importación fallará con un error "unknown collation". Si eso sucede, reexporte usando una intercalación ampliamente compatible como utf8mb4_unicode_ci, o busque y reemplace en el archivo de volcado antes de importar.

La pestaña Database para un sitio en KPanel

Por Qué el Host Es 127.0.0.1

127.0.0.1 significa "esta máquina". El servidor de base de datos solo escucha en la interfaz interna propia de la máquina, y el puerto 3306 tampoco está abierto a internet en el firewall. No hay ninguna configuración en el panel para abrirlo, y no hay ninguna lista permitida de IP para él.

Eso no es una omisión. Un puerto de base de datos orientado a internet es una de las cosas más explotadas de forma fiable en alojamiento: se escanea constantemente, filtra información de versión a cualquiera que se conecte, y una única contraseña débil le hace perder todo el sitio. Mantenerlo cerrado elimina toda esa categoría de riesgo.

Así que una cadena de conexión que use la dirección IP pública de su sitio y el puerto 3306 siempre fallará, desde cualquier lugar, en todos los planes. Hay dos formas admitidas de acceso en su lugar.

Opción 1: phpMyAdmin en el Navegador

Lo más fácil para una vista rápida, una edición, o una importación o exportación pequeña.

En la página Database, haga clic en Open phpMyAdmin. Inicia sesión directamente con sus propias credenciales del sitio y solo ve sus propias bases de datos.

El enlace que hace esto es deliberadamente de corta duración, y falla de formas que parecen errores pero no lo son:

  • Caduca en 60 segundos. Haga clic en él tan pronto como aparezca.
  • Funciona una vez. Volver atrás y recargar no funcionará; genere uno nuevo.
  • Debe abrirse desde el mismo navegador y la misma red desde la que lo solicitó. Si copia el enlace a otro dispositivo, o su conexión cambia de dirección a mitad de camino, se rechaza.

Si ve "This link has already been used" o un mensaje sobre una falta de coincidencia de IP, esa es la protección funcionando. Vuelva a la página Database y haga clic en el botón de nuevo.

Para trabajar con phpMyAdmin en sí, consulte Usando phpMyAdmin.

Opción 2: Un Túnel SSH para Herramientas de Escritorio

Si desea usar un cliente de escritorio, esta es la ruta admitida. El túnel abre una conexión encriptada al servidor y reenvía un puerto en su propia máquina a través de él, de modo que su cliente se conecta a lo que parece una base de datos local.

Lo Que Necesita Primero

Una clave SSH en el sitio. La autenticación por contraseña no se acepta, así que este paso no es opcional.

  1. Vaya a Websites, el sitio, Files, luego SSH Keys.
  2. O pegue la clave pública que ya usa, o genere un nuevo par de claves desde el panel.
  3. Anote el nombre de usuario que aparece en esa página. Es el usuario del sistema de su sitio, y es con quien se conecta.

Si genera una clave en el panel, la clave privada se muestra una sola vez y nunca más. Guárdela inmediatamente, y manténgala en un lugar donde solo usted pueda leerla.

También recibirá un correo electrónico cada vez que se añada una clave a su sitio. Eso es intencional. Si uno llega y no fue usted, revóquelo desde esa página de inmediato y lea If Your Site Is Hacked.

Consulte Agregando Claves SSH para el recorrido completo.

Una cuenta SFTP creada en la pestaña SFTP no funcionará para un túnel. Esas cuentas son solo para transferencia de archivos, sin shell ni reenvío de puerto. El tunelizado requiere el usuario SSH propio del sitio con una clave. Consulte Acceso SFTP.

Abriendo el Túnel

Desde una terminal en su propia máquina:

ssh -N -L 3307:127.0.0.1:3306 your-ssh-user@cp1-kapsule.kapsulehost.com

Reemplace your-ssh-user con el nombre de usuario de la página SSH Keys. Desglosando eso:

  • -N significa no ejecutar un comando, solo mantener el túnel abierto.
  • -L 3307:127.0.0.1:3306 reenvía el puerto 3307 en su máquina al puerto 3306 en el servidor.
  • El puerto 3307 se usa en lugar de 3306 para que no choque con una base de datos que pueda tener ejecutándose localmente.

El comando no imprime nada cuando funciona. Eso es correcto. Deje la ventana del terminal abierta mientras necesite la conexión, y presione Ctrl+C para cerrarla.

Conectando Su Cliente

Con el túnel abierto, apunte su herramienta de base de datos a:

ConfiguraciónValor
Host127.0.0.1
Port3307
Usernameel nombre de usuario de la base de datos de la página Database
Passwordla contraseña de la base de datos de la página Database
Databaseel nombre de su base de datos

Tenga en cuenta la división: el nombre de usuario de SSH es el usuario del sistema de su sitio, y el nombre de usuario de database es uno diferente de la página Database. Mezclar esos dos es por mucho el error más común aquí.

La mayoría de los clientes de escritorio también tienen una opción integrada "connect over SSH tunnel", que hace exactamente lo anterior sin una terminal separada. Complete el host SSH cp1-kapsule.kapsulehost.com, puerto 22, su nombre de usuario SSH, y su archivo de clave privada, luego los campos de base de datos como se indica arriba.

Consulte Túnel SSH de Base de Datos para la configuración cliente por cliente.

Línea de Comandos en el Servidor

Si se siente cómodo en una terminal, no necesita un túnel en absoluto. Conéctese por SSH y trabaje directamente en el servidor:

ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql

Esto es mucho más rápido que extraer una base de datos grande a través de un túnel, y es la forma correcta de tomar un volcado manual antes de un cambio arriesgado. Para WordPress específicamente, WP-CLI generalmente es aún mejor.

Solución de Problemas

"Connection refused" en el puerto 3306 desde su propia máquina. Esperado. Consulte lo anterior. Use un túnel.

El comando de túnel solicita una contraseña. Su clave no se está ofreciendo o no está instalada. Verifique que la clave esté en la página SSH Keys y agregue -i /path/to/your/private/key al comando.

"Permission denied (publickey)". Nombre de usuario incorrecto, o clave incorrecta. El nombre de usuario es el que aparece en la página SSH Keys, no su correo electrónico de inicio de sesión en Kapsule.

"Address already in use" para el puerto 3307. Un túnel ya está abierto, o algo más está usando ese puerto. Cierre el otro, o elija un puerto local diferente como 3308.

El túnel se abre pero el cliente no puede conectar. Confirme que su cliente apunta a 127.0.0.1 y su puerto local elegido, no a su dominio.

"Access denied for user". Credenciales de base de datos, no SSH. Revele y copie nuevamente de la página Database.

"Unknown collation" en la importación. Cubierto arriba. Reexporte con una intercalación compatible.

Cualquier cosa que haga en un cliente de base de datos sucede inmediatamente y no se puede deshacer. No hay paso de confirmación ni papelera de reciclaje. Haga una copia de seguridad antes de ejecutar cualquier cosa que escriba. Consulte Hacer una Copia de Seguridad.

Guías Relacionadas

¿Aún necesitas ayuda?

Envíanos un correo electrónico a support@kapsulehost.com o abre un chat en KPanel.

Abrir KPanel
Conectarse a tu base de datos de forma remota