Cómo usar MySQL desde la línea de comandos (SSH) en cPanel
¿Alguna vez has necesitado acceder a tu base de datos y has pensado que solo podías hacerlo desde phpMyAdmin? Te tengo una noticia: MySQL desde SSH es mucho más rápido, potente y flexible. Cuando dominas la terminal, puedes automatizar tareas, hacer copias de seguridad más seguras y ejecutar consultas complejas sin las limitaciones de una interfaz web.
En esta guía, para usuarios de cPanel, voy a explicarte paso a paso cómo conectarte por SSH y usar los comandos mysql más útiles. No necesitas ser un experto, solo tener paciencia y seguir las instrucciones al pie de la letra. Al final, podrás manejar tus bases de datos como todo un profesional.
Requisitos previos: ¿Qué necesitas antes de empezar?
Antes de lanzarnos a escribir comandos, debemos asegurarnos de tener todo listo. No queremos frustraciones a mitad de camino.
Acceso SSH activado en cPanel
Lo primero es lo primero. No todos los planes de hosting tienen el acceso SSH habilitado por defecto. En muchos casos, especialmente en hosting compartido, tendrás que activarlo manualmente.
- Inicia sesión en tu cPanel.
- Busca la sección "Seguridad" o "Avanzado".
- Haz clic en "Acceso SSH" (a veces se llama "SSH Access" o "Acceso al shell").
- Si ves un botón que dice "Administrar" o "Gestionar", haz clic ahí y luego en "Habilitar acceso SSH".
[INFO] Si no encuentras esta opción, es posible que tu proveedor de hosting no ofrezca acceso SSH en tu plan actual. En ese caso, contacta con su soporte para preguntar si es posible activarlo o si necesitas cambiar de plan.
Un cliente SSH en tu ordenador
Necesitas un programa para conectarte al servidor. Si usas Linux o Mac, ya tienes uno integrado llamado Terminal. Si usas Windows, te recomiendo instalar PuTTY o usar el Terminal de Windows (si tienes Windows 10 o superior, puedes instalar "Windows Subsystem for Linux" o simplemente usar el símbolo del sistema con ssh).
Tus credenciales de conexión
Necesitarás tres datos:
- Dirección del servidor (Host): Generalmente es algo como
dominio.comoftp.tudominio.com. Lo puedes encontrar en la sección de "Bienvenida" de tu cPanel o en el correo de bienvenida de tu hosting. - Nombre de usuario: Tu nombre de usuario de cPanel.
- Contraseña: La contraseña de tu cuenta de cPanel (o la clave pública SSH si la configuraste).
Conectándote al servidor: El primer paso
Una vez que tengas los requisitos, vamos a conectarnos. Abre tu terminal local (o PuTTY) y escribe lo siguiente:
ssh usuario@tudominio.com
Sustituye usuario por tu nombre de usuario real y tudominio.com por la dirección de tu servidor. Pulsa Enter. Te pedirá la contraseña. Escríbela (verás que no aparece nada mientras escribes, es normal, es una medida de seguridad) y pulsa Enter de nuevo.
¡Felicidades! Ya estás dentro del servidor. Verás algo como [usuario@hosting ~]$. Ahora sí, estamos listos para trabajar con mysql ssh.
Localizando tus bases de datos y usuarios
Antes de hacer nada, es bueno saber qué tenemos. En cPanel, los nombres de las bases de datos y los usuarios suelen tener un prefijo con el nombre de tu cuenta. Por ejemplo, si tu cuenta es juancarlos, tu base de datos podría llamarse juancarlos_wordpress.
Para listar todas tus bases de datos desde la terminal, escribe:
mysql -u usuario_cpanel -p -e "SHOW DATABASES;"
Te pedirá la contraseña de tu usuario de cPanel (no la de la base de datos). Este comando se conecta a MySQL y ejecuta la consulta SQL SHOW DATABASES;.
[TIP] El parámetro
-ete permite ejecutar una consulta SQL directamente desde la línea de comandos sin entrar en el cliente interactivo de MySQL. Es súper útil para comandos rápidos.
Para ver los usuarios de MySQL, puedes ejecutar:
mysql -u usuario_cpanel -p -e "SELECT user, host FROM mysql.user;"
Entrando al cliente MySQL: El modo interactivo
Ahora viene la parte interesante. Para trabajar de forma interactiva, vamos a entrar dentro del shell de MySQL.
mysql -u usuario_cpanel -p
Te pedirá la contraseña de tu cuenta de cPanel. Una vez dentro, verás que el prompt cambia a mysql>. Ahora ya puedes escribir consultas sql directamente.
Comandos básicos dentro de MySQL
Aquí tienes una lista de los comandos más comunes que usarás:
SHOW DATABASES;: Muestra todas las bases de datos.USE nombre_base_datos;: Selecciona la base de datos con la que quieres trabajar.SHOW TABLES;: Una vez seleccionada una base de datos, muestra todas sus tablas.DESCRIBE nombre_tabla;: Muestra la estructura de una tabla (columnas, tipos de datos, etc.).SELECT * FROM nombre_tabla;: Muestra todos los registros de una tabla. Ojo, si la tabla es muy grande, esto puede ser un problema.EXIT;o\q: Salir del cliente MySQL.
Ejemplo práctico:
Supongamos que tienes una base de datos llamada juancarlos_blog. Vamos a ver sus tablas.
USE juancarlos_blog;
SHOW TABLES;
Con esto, MySQL te mostrará una lista de las tablas dentro de esa base de datos.
Las consultas SQL más útiles para el día a día
Aquí es donde la terminal brilla. Con phpMyAdmin a veces es lento hacer ciertas cosas, pero con un comando bien escrito, es instantáneo.
1. Filtrar datos con WHERE
Imagina que quieres ver solo los usuarios de una tabla llamada clientes que sean de España.
SELECT * FROM clientes WHERE pais = 'España';
2. Contar registros
¿Cuántos pedidos hay en total?
SELECT COUNT(*) FROM pedidos;
3. Actualizar datos
Necesitas cambiar el precio de un producto. Aquí no hay clics en "Editar", se hace con un comando.
UPDATE productos SET precio = 15.99 WHERE id = 123;
[WARNING] ¡CUIDADO! Un
UPDATEsin cláusulaWHEREactualizará TODAS las filas de la tabla. Siempre verifica tu cláusulaWHEREantes de ejecutar el comando. No hay botón de "deshacer" en la terminal.
4. Eliminar datos
De manera similar, para borrar un registro específico:
DELETE FROM clientes WHERE id = 456;
[WARNING] Al igual que con
UPDATE, unDELETEsinWHEREborrará toda la tabla. Asegúrate de saber lo que estás haciendo.
Copias de seguridad: El rey de los comandos (mysqldump cpanel)
Esta es, probablemente, la razón principal por la que aprender a usar la terminal. Hacer una copia de seguridad con mysqldump cpanel es mucho más seguro y rápido que hacerlo desde phpMyAdmin, especialmente si tu base de datos es grande.
Cómo hacer un backup de una base de datos
Desde el shell de tu servidor (fuera del cliente MySQL), ejecuta:
mysqldump -u usuario_cpanel -p nombre_base_datos > backup_base_datos.sql
Esto creará un archivo llamado backup_base_datos.sql en el directorio donde estés. Este archivo contiene todas las instrucciones SQL necesarias para recrear la base de datos.
Cómo restaurar una base de datos desde el backup
Para restaurar, usa el comando mysql con la redirección de entrada:
mysql -u usuario_cpanel -p nombre_base_datos < backup_base_datos.sql
Esto ejecutará todas las instrucciones del archivo .sql en la base de datos especificada.
Backup de todas tus bases de datos
Si quieres hacer una copia de seguridad de todo, puedes combinar mysqldump con un bucle o hacerlo manualmente listándolas. Un truco rápido es:
mysqldump -u usuario_cpanel -p --all-databases > backup_total.sql
[TIP] Guarda siempre tus archivos de backup en un directorio seguro, como
~/backups/, y bórralos del servidor después de descargarlos a tu ordenador para no ocupar espacio innecesario.
Trucos y atajos para ser más eficiente
Aquí van algunos consejos que te harán ahorrar tiempo.
Usar el historial de comandos
Pulsa la flecha hacia arriba (↑) en tu teclado para recuperar el último comando que usaste. Muy útil para repetir consultas.
Escribir la contraseña de forma segura
En lugar de escribir la contraseña cada vez, puedes ponerla justo después de -p sin espacios. Por ejemplo: mysql -u usuario_cpanel -pMiContraseña. Pero ojo, esto deja la contraseña en el historial de la terminal, lo cual es un riesgo de seguridad. Te recomiendo usar el método de escritura interactiva (sin ponerla en el comando).
Crear un alias para comandos largos
Si usas muy a menudo un comando largo, puedes crear un alias en tu archivo .bashrc. Por ejemplo:
alias miblog='mysql -u usuario_cpanel -p juancarlos_blog'
Después de ejecutar source ~/.bashrc, podrás escribir miblog y entrarás directamente a tu base de datos.
Solución de problemas comunes (FAQ)
Aquí tienes las dudas típicas que nos suelen llegar.
"Access denied for user"
Este error significa que tus credenciales son incorrectas o que el usuario no tiene permisos para acceder desde ese host. Revisa que estás usando el usuario de cPanel y su contraseña. A veces, el usuario de la base de datos es diferente, pero para acceder por SSH, se usa el de cPanel.
"Can't connect to local MySQL server through socket"
Esto suele pasar cuando el servicio de MySQL no está corriendo o cuando intentas conectarte a un socket que no existe. En un hosting compartido, esto es raro, pero si ocurre, contacta con soporte.
¿Cómo salgo de MySQL?
Escribe EXIT; o \q y pulsa Enter. Simple.
Conclusión y próximos pasos
Dominar mysql ssh es una habilidad que te diferenciará del usuario promedio. Poder ejecutar comandos mysql y manejar consultas sql directamente desde la terminal te da un control total sobre tus datos. Hemos visto desde cómo conectarte, hasta cómo hacer backups con mysqldump cpanel, pasando por las consultas más importantes.
Te animo a que practiques con una base de datos de prueba. Crea una tabla, inserta datos y luego haz un backup. La práctica es la única forma de perderle el miedo a la terminal.
[INFO] Si en algún momento te sientes perdido, recuerda que siempre puedes recurrir a la ayuda integrada. Escribe
mysql --helpomysqldump --helppara ver todas las opciones disponibles.
Espero que esta guía te haya sido de gran ayuda. Si tienes más dudas, no dudes en escribirnos. ¡Nos vemos en el próximo tutorial!
