# Cómo conectarse a su base de datos de forma remota

Source: https://support.kapsulehost.com/es-es/database-remote-access

Dónde encontrar las credenciales de su base de datos, por qué se rechazan las conexiones remotas directas por el puerto 3306, y cómo conectar una herramienta de escritorio mediante 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 consultar en cualquier momento. Lo que no puede hacer es conectarse a ella directamente a través de internet, y eso es intencional. Esta guía cubre las credenciales, las dos formas admitidas de acceso, y cómo configurar el túnel que necesitan las herramientas de bases de datos de escritorio.

## Cómo encontrar sus credenciales

Vaya a **Sitios web**, haga clic en el sitio y luego en **Base de datos**.

La página muestra cinco cosas:

| Campo | Valor |
|---|---|
| Host | `127.0.0.1` |
| Puerto | `3306` |
| Base de datos | el nombre de su base de datos |
| Nombre de usuario | su usuario de base de datos |
| Contraseña | oculta, con un botón para mostrarla y un botón para copiarla |

La contraseña no es de revelación única. Puede volver y consultarla siempre que la necesite, por lo que no hace falta guardarla por separado.

El servidor de bases de datos es MariaDB 10.11, compatible con MySQL. Esto importa de una manera práctica: un volcado exportado desde una versión reciente de MySQL puede contener cotejamientos (collations) que MariaDB no reconoce, y la importación fallará con un error de "unknown collation" (cotejamiento desconocido). Si eso ocurre, vuelva a exportar usando un cotejamiento ampliamente compatible como `utf8mb4_unicode_ci`, o búsquelo y reemplácelo en el archivo de volcado antes de importarlo.

![La pestaña Database de un sitio en KPanel, mostrando los detalles de conexión de la base de datos](https://support.kapsulehost.com/help/screenshots/database-remote-access.84df4ba6.webp)

## Por qué el host es 127.0.0.1

`127.0.0.1` significa "esta misma máquina". El servidor de bases de datos solo escucha en la interfaz interna de la propia máquina, y el puerto 3306 tampoco está abierto a internet a nivel de cortafuegos. No existe ninguna opción en el panel para abrirlo, ni una lista de IP permitidas para ello.

Esto no es un descuido. Un puerto de base de datos expuesto a internet es una de las cosas más explotadas de forma fiable en el alojamiento web: se escanea constantemente, revela información de versión a cualquiera que se conecte, y una sola contraseña débil hace que pierda el sitio entero. Mantenerlo cerrado elimina toda esa categoría de riesgo.

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

## Opción 1: phpMyAdmin en el navegador

La más fácil para echar un vistazo rápido, hacer una edición, o una pequeña importación o exportación.

En la página Database, haga clic en **Abrir phpMyAdmin**. Accederá directamente con las credenciales propias de su sitio y solo verá sus propias bases de datos.

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

- **Caduca en 60 segundos.** Haga clic en él tan pronto como aparezca.
- **Funciona una sola 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 rechazará.

Si ve "This link has already been used" o un mensaje sobre una discrepancia de IP, eso 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 [Uso de phpMyAdmin](https://support.kapsulehost.com/es-es/sites-phpmyadmin).

## Opción 2: un túnel SSH para herramientas de escritorio

Si quiere usar un cliente de escritorio, este es el camino admitido. El túnel abre una conexión cifrada hacia el servidor y reenvía un puerto de su propia máquina a través de ella, 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. No se acepta la autenticación por contraseña, por lo que este paso no es opcional.

1. Vaya a **Sitios web**, el sitio, **Configuración** y luego **Claves SSH**.
2. Pegue la clave pública que ya utiliza, o genere un nuevo par de claves desde el panel.
3. Anote el nombre de usuario que se muestra en esa página. Es el usuario del sistema de su sitio, y es con el que se conecta.

Si genera una clave en el panel, **la clave privada se muestra una vez y nunca más**. Guárdela de inmediato, y consérvela en un lugar que solo usted pueda leer.

También recibirá un correo electrónico cada vez que se añada una clave a su sitio. Esto es intencional. Si llega uno y no fue usted, revóquela desde esa página de inmediato y lea [Si su sitio ha sido hackeado](https://support.kapsulehost.com/es-es/site-hacked-what-to-do).

Consulte [Agregar claves SSH](https://support.kapsulehost.com/es-es/adding-ssh-keys) para ver el procedimiento completo.

> **Warning:** 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 y sin reenvío de puertos. Para tunelizar se necesita el propio usuario SSH del sitio con una clave. Consulte [Acceso SFTP](https://support.kapsulehost.com/es-es/sftp-access).

### Abrir el túnel

Desde una terminal en su propia máquina:

```sh
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 esto:

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

El comando no muestra nada en pantalla cuando funciona correctamente. Eso es lo esperado. Deje la ventana de la terminal abierta durante el tiempo que necesite la conexión, y pulse Ctrl+C para cerrarla.

### Conectar su cliente

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

| Parámetro | Valor |
|---|---|
| Host | `127.0.0.1` |
| Puerto | `3307` |
| Nombre de usuario | el nombre de usuario de la base de datos de la página Database |
| Contraseña | la contraseña de la base de datos de la página Database |
| Base de datos | el nombre de su base de datos |

Tenga en cuenta la distinción: el nombre de usuario de **SSH** es el usuario del sistema de su sitio, y el nombre de usuario de la **base de datos** es otro distinto, de la página Database. Confundir ambos es, con diferencia, el error más común aquí.

La mayoría de los clientes de escritorio también tienen una opción integrada de "conectar mediante túnel SSH", que hace exactamente lo anterior sin necesidad de una terminal aparte. Complete el host SSH `cp1-kapsule.kapsulehost.com`, el puerto 22, su nombre de usuario SSH y su archivo de clave privada, y luego los campos de la base de datos como se indicó antes.

Consulte [Túnel SSH de base de datos](https://support.kapsulehost.com/es-es/database-ssh-tunnel) para la configuración específica de cada cliente.

## Línea de comandos en el servidor

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

```sh
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 hacer un volcado manual antes de un cambio arriesgado. Para WordPress en concreto, [WP-CLI](https://support.kapsulehost.com/es-es/wordpress-wp-cli) suele ser aún mejor.

## Solución de problemas

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

**El comando del túnel solicita una contraseña.** Su clave no se está ofreciendo o no está instalada. Compruebe que la clave está en la página SSH Keys y añada `-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 el correo electrónico de inicio de sesión de KapsuleHost.

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

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

**"Access denied for user".** Son credenciales de la base de datos, no de SSH. Vuelva a revelarlas y copiarlas desde la página Database.

**"Unknown collation" al importar.** Explicado anteriormente. Vuelva a exportar con un cotejamiento compatible.

> **Important:** Todo lo que haga en un cliente de base de datos ocurre de inmediato 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 datos. Consulte [Cómo hacer una copia de seguridad](https://support.kapsulehost.com/es-es/taking-a-backup).

## Guías relacionadas

- [Uso de phpMyAdmin](https://support.kapsulehost.com/es-es/sites-phpmyadmin)
- [Túnel SSH de base de datos](https://support.kapsulehost.com/es-es/database-ssh-tunnel)
- [Agregar claves SSH](https://support.kapsulehost.com/es-es/adding-ssh-keys)
- [Acceso SFTP](https://support.kapsulehost.com/es-es/sftp-access)
- [Cómo hacer una copia de seguridad](https://support.kapsulehost.com/es-es/taking-a-backup)
- [Websites](https://support.kapsulehost.com/es-es/sites-overview)
- [Glosario de alojamiento web](https://support.kapsulehost.com/es-es/glossary)
