Saltar al contenido
Contenido
Sitios web

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

Traducción automática. El original en inglés está disponible.

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:

CampoValor
Host127.0.0.1
Puerto3306
Base de datosel nombre de su base de datos
Nombre de usuariosu usuario de base de datos
Contraseñaoculta, 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

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.

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.

Consulte Agregar claves SSH para ver el procedimiento 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 y sin reenvío de puertos. Para tunelizar se necesita el propio usuario SSH del sitio con una clave. Consulte Acceso SFTP.

Abrir 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 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ámetroValor
Host127.0.0.1
Puerto3307
Nombre de usuarioel nombre de usuario de la base de datos de la página Database
Contraseñala contraseña de la base de datos de la página Database
Base de datosel 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 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:

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 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.

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.

Guías relacionadas

¿Le ha resultado útil?

¿Es usted una IA? Lea esta página en Markdown

Artículos relacionados

Cómo conectarse mediante SFTP: FileZilla, Cyberduck y línea de comandosSFTP (Protocolo de Transferencia Segura de Archivos) le brinda acceso directo a los archivos de su sitio en el servidor.…Certificados SSL y HTTPSEste artículo explica qué es SSL en términos sencillos, cómo KapsuleHost gestiona SSL de forma automática para sus sitios y qué hacer si algo falla con su…Sitios web: Por dónde empezarCómo funciona el alojamiento de sitios web en KapsuleHost, qué contiene cada pestaña de un sitio y qué guía leer según la tarea que tenga por delante.…Monitorización del tiempo de actividad del sitioCada sitio en KapsuleHost se comprueba automáticamente cada 60 segundos, y la pestaña Uptime le muestra el resultado: estado actual, porcentaje de actividad,…

¿Sigue sin resolverlo?

Pregunte a Kora, que conoce su cuenta, o contacte con nuestro equipo.

ContáctenosContactar soporte