MySQL y bases de datos en cPanel

MySQL es el motor de base de datos que usan WordPress, PrestaShop, WooCommerce, Joomla y prácticamente todos los CMS populares. cPanel incluye herramientas completas para gestionarlo sin necesidad de conocimientos de administración de bases de datos: puedes crear bases de datos, gestionar usuarios, importar y exportar datos, y hacer backups, todo desde una interfaz visual.

En esta guía cubro todo lo que necesitas saber para gestionar MySQL en cPanel de forma eficiente.

Cómo acceder a las herramientas de MySQL en cPanel

Accede a tu cPanel (tudominio.com/cpanel) y busca la sección Bases de datos. Encontrarás tres herramientas principales:

  • Bases de datos MySQL: crear y gestionar bases de datos y usuarios
  • Asistente para bases de datos MySQL: proceso guiado para crear base de datos, usuario y asignar permisos en un solo flujo
  • phpMyAdmin: interfaz visual completa para gestionar el contenido de las bases de datos

Crear una base de datos MySQL en cPanel

Método 1: Usando el Asistente (recomendado para principiantes)

El asistente de cPanel guía el proceso en cuatro pasos:

  1. cPanel → Bases de datos → Asistente para bases de datos MySQL
  2. Paso 1 — Crear base de datos: escribe el nombre. cPanel añade automáticamente el prefijo de tu cuenta (ej: si tu usuario es blum, la base de datos quedará como blum_nombrebd).
  3. Paso 2 — Crear usuario: escribe el nombre de usuario y una contraseña segura. cPanel sugiere una contraseña aleatoria fuerte.
  4. Paso 3 — Añadir usuario a la base de datos: asigna los privilegios. Para la mayoría de casos (WordPress, PrestaShop), marca Todos los privilegios.
  5. Paso 4 — Completar tarea: resumen de lo creado.

Apunta las credenciales — las necesitarás para configurar el CMS que uses.

Método 2: Creación manual

Para mayor control:

  1. cPanel → Bases de datos MySQL
  2. En la sección Crear nueva base de datos, escribe el nombre y haz clic en Crear base de datos
  3. En la sección Añadir nuevo usuario, crea el usuario con contraseña
  4. En la sección Añadir usuario a base de datos, selecciona el usuario y la base de datos y asigna los privilegios

Este método es el que cubre en detalle el artículo sobre crear una base de datos MySQL en cPanel.

Gestionar bases de datos con phpMyAdmin

phpMyAdmin es la interfaz web más usada para gestionar bases de datos MySQL. Desde cPanel → Bases de datos → phpMyAdmin accedes directamente sin necesidad de usuario y contraseña adicionales.

El artículo sobre administrar phpMyAdmin desde cPanel cubre la interfaz en detalle. Aquí nos centramos en las operaciones más frecuentes.

Estructura de phpMyAdmin

Al abrir phpMyAdmin verás:

  • Panel izquierdo: lista de todas las bases de datos de tu cuenta
  • Panel central: contenido de la base de datos seleccionada (tablas, datos, SQL)
  • Pestañas superiores: Estructura, SQL, Buscar, Exportar, Importar, Operaciones, Privilegios

Explorar las tablas de WordPress

Al seleccionar la base de datos de WordPress verás las tablas con el prefijo configurado (por defecto wp_):

TablaContenido
wp_postsEntradas, páginas, adjuntos, revisiones
wp_postmetaMetadatos de entradas (campos personalizados)
wp_optionsConfiguración del sitio, opciones de plugins
wp_usersUsuarios registrados
wp_usermetaMetadatos de usuarios (roles, preferencias)
wp_termsCategorías, etiquetas y taxonomías
wp_term_relationshipsRelación entre posts y términos
wp_commentsComentarios
wp_commentmetaMetadatos de comentarios

Exportar (hacer backup) de una base de datos

Exportar la base de datos es una de las operaciones más importantes. Aunque BlumHost hace backups automáticos diarios con JetBackup, exportar manualmente antes de hacer cambios importantes es una buena práctica.

Exportación rápida desde phpMyAdmin

  1. En phpMyAdmin, selecciona la base de datos en el panel izquierdo
  2. Haz clic en la pestaña Exportar
  3. Método: Rápido — exporta toda la base de datos
  4. Formato: SQL
  5. Haz clic en Continuar

Se descarga un archivo .sql con toda la estructura y los datos.

Exportación personalizada

El método Personalizado permite seleccionar:

  • Tablas específicas (útil si solo quieres exportar wp_options o wp_posts)
  • Opciones de compresión (gzip para archivos grandes)
  • Incluir o no los datos (solo estructura, solo datos, o ambos)
  • Añadir sentencias DROP TABLE IF EXISTS (útil para importaciones limpias)

Exportación desde SSH con mysqldump

Para bases de datos grandes, mysqldump desde SSH es más rápido y no tiene límites de tiempo de ejecución de PHP:

bash

mysqldump -u tuusuario -p tunombrebd > backup_$(date +%Y%m%d).sql

Con compresión:

bash

mysqldump -u tuusuario -p tunombrebd | gzip > backup_$(date +%Y%m%d).sql.gz

Solo estructura (sin datos):

bash

mysqldump -u tuusuario -p --no-data tunombrebd > estructura.sql

Solo datos (sin estructura):

bash

mysqldump -u tuusuario -p --no-create-info tunombrebd > datos.sql

Importar una base de datos en cPanel

Importación desde phpMyAdmin

  1. En phpMyAdmin, selecciona la base de datos de destino (debe existir y estar vacía, o con DROP TABLE en el SQL)
  2. Pestaña Importar
  3. Haz clic en Seleccionar archivo y elige el .sql (o .sql.gz)
  4. Formato: SQL (phpMyAdmin lo detecta automáticamente)
  5. Haz clic en Continuar

Límite de tamaño: phpMyAdmin tiene un límite de subida de archivos definido por la configuración PHP (upload_max_filesize y post_max_size). Si tu base de datos supera este límite, usa el método SSH.

Para cambiar el límite temporalmente, en cPanel → Selector de PHP → aumenta upload_max_filesize y post_max_size. El artículo sobre cambiar la versión de PHP en cPanel explica cómo hacerlo.

Importación desde SSH para archivos grandes

bash

# Importar archivo SQL
mysql -u tuusuario -p tunombrebd < backup.sql

# Importar archivo comprimido
gunzip < backup.sql.gz | mysql -u tuusuario -p tunombrebd

# Ver el progreso en tiempo real (requiere pv)
pv backup.sql | mysql -u tuusuario -p tunombrebd

Importación con cPanel Backup

Si la base de datos fue exportada con cPanel Backup (no con phpMyAdmin), restáurala desde cPanel → Copias de seguridad → Restaurar una copia de seguridad de base de datos MySQL.

Operaciones frecuentes en phpMyAdmin

Ejecutar consultas SQL personalizadas

Para cualquier operación que no tenga interfaz visual, usa la pestaña SQL. Aquí puedes escribir y ejecutar cualquier sentencia SQL:

sql

-- Ver todas las opciones de WordPress
SELECT * FROM wp_options LIMIT 50;

-- Cambiar la URL del sitio
UPDATE wp_options SET option_value = 'https://nuevo-dominio.com' 
WHERE option_name IN ('siteurl', 'home');

-- Ver todos los usuarios de WordPress
SELECT user_login, user_email, user_registered FROM wp_users;

-- Cambiar el rol de un usuario a administrador
UPDATE wp_usermeta SET meta_value = 'a:1:{s:13:"administrator";b:1;}' 
WHERE user_id = 1 AND meta_key = 'wp_capabilities';

-- Contar el número de entradas publicadas
SELECT COUNT(*) FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post';

-- Eliminar revisiones antiguas (libera espacio)
DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

Buscar y reemplazar en la base de datos

Una de las operaciones más frecuentes, especialmente tras migraciones o cambios de dominio. Hay que tener cuidado con los datos serializados de WordPress, que no deben modificarse con un simple REPLACE en SQL.

La forma correcta: usar el plugin Better Search Replace o WP-CLI:

bash

# Reemplazar URLs en toda la base de datos con WP-CLI
wp search-replace 'https://dominio-antiguo.com' 'https://dominio-nuevo.com' --all-tables --report-changed-only

WP-CLI maneja correctamente los datos serializados, mientras que un REPLACE() directo en SQL puede corromperlos.

Optimizar tablas

Con el tiempo, las tablas de MySQL acumulan fragmentación (especialmente wp_posts y wp_options en WordPress activo). Optimizarlas recupera espacio y mejora el rendimiento de las consultas:

  1. En phpMyAdmin, selecciona la base de datos
  2. En la lista de tablas, marca todas (o las que quieras optimizar)
  3. En el desplegable inferior, selecciona Optimizar tabla
  4. Haz clic en Continuar

Desde SSH:

bash

mysqlcheck -u tuusuario -p --optimize tunombrebd

Para todas las bases de datos de tu cuenta:

bash

mysqlcheck -u tuusuario -p --optimize --all-databases

Reparar tablas corruptas

Si WordPress da errores de base de datos o el sitio no carga, puede haber tablas corruptas:

  1. En phpMyAdmin, selecciona la base de datos
  2. Marca las tablas afectadas
  3. En el desplegable, selecciona Reparar tabla

Desde SSH:

bash

mysqlcheck -u tuusuario -p --repair tunombrebd

También puedes usar la función de reparación integrada de WordPress añadiendo esto al wp-config.php:

php

define('WP_ALLOW_REPAIR', true);

Luego accede a tudominio.com/wp-admin/maint/repair.php. Elimina esta línea del wp-config.php después de reparar — deja expuesta la herramienta de reparación sin autenticación.

Gestión de usuarios MySQL

Crear usuarios adicionales

Desde cPanel → Bases de datos MySQL → Añadir nuevo usuario. Cada usuario puede tener acceso a una o varias bases de datos con privilegios específicos.

Privilegios disponibles

Los privilegios más habituales son:

PrivilegioDescripción
ALL PRIVILEGESAcceso completo (recomendado para CMS)
SELECTSolo lectura
INSERTInsertar datos
UPDATEModificar datos existentes
DELETEEliminar datos
CREATECrear tablas y bases de datos
DROPEliminar tablas y bases de datos
INDEXGestionar índices
ALTERModificar estructura de tablas

Para WordPress, WooCommerce y PrestaShop usa ALL PRIVILEGES — necesitan acceso completo para funcionar correctamente.

Acceso remoto a MySQL

Por defecto, las bases de datos de cPanel solo aceptan conexiones desde el mismo servidor (localhost). Si necesitas conectarte desde un servidor externo (por ejemplo, desde un VPS o desde tu ordenador local para usar MySQL Workbench):

  1. cPanel → Bases de datos → MySQL remoto
  2. Añade la IP desde la que quieres conectarte
  3. Haz clic en Añadir host

Para permitir conexiones desde cualquier IP (menos seguro, evitar en producción): añade % como host.

La cadena de conexión desde una aplicación externa:

Host: tudominio.com (o la IP del servidor)
Puerto: 3306
Usuario: tuusuario_dbuser
Contraseña: la_contraseña
Base de datos: tuusuario_nombrebd

Monitorizar el rendimiento de MySQL

Consultas lentas

Las consultas lentas (slow queries) son consultas que tardan más de un umbral determinado en ejecutarse. En un VPS con acceso root puedes activar el slow query log:

bash

# En /etc/mysql/mysql.conf.d/mysqld.cnf
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

En hosting compartido con cPanel, esta opción la gestiona el proveedor. Si notas que la base de datos es lenta, el soporte técnico puede revisar las consultas problemáticas.

Tamaño de las bases de datos

Para ver el tamaño de cada tabla en phpMyAdmin:

  1. Selecciona la base de datos
  2. Desplázate hasta el final de la lista de tablas
  3. Verás el tamaño de cada tabla y el total

Desde SQL:

sql

SELECT 
    table_name,
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Tamaño (MB)'
FROM information_schema.TABLES
WHERE table_schema = 'tunombrebd'
ORDER BY (data_length + index_length) DESC;

Errores frecuentes de MySQL en cPanel y sus soluciones

«Error al establecer una conexión con la base de datos» (WordPress)

Es el error más frecuente de WordPress relacionado con la base de datos. Causas posibles:

  1. Credenciales incorrectas en wp-config.php: verifica DB_NAME, DB_USER, DB_PASSWORD y DB_HOST
  2. El servidor MySQL está caído: comprueba en cPanel si puedes acceder a phpMyAdmin
  3. La base de datos no existe: verifica en cPanel → Bases de datos MySQL
  4. El usuario no tiene privilegios: verifica en cPanel que el usuario está asignado a la base de datos con los privilegios correctos

El artículo sobre error de conexión a la base de datos en WordPress cubre este error en detalle.

«Too many connections»

MySQL tiene un límite de conexiones simultáneas. Si lo superas, las nuevas conexiones reciben este error.

En hosting compartido, este límite lo gestiona el proveedor. Si lo alcanzas frecuentemente, indica que tu aplicación abre demasiadas conexiones sin cerrarlas o que el tráfico ha crecido más allá de lo que soporta el hosting compartido. La solución es optimizar la aplicación o escalar a un VPS.

«Table is marked as crashed and should be repaired»

Indica corrupción en una tabla. Solución:

bash

mysqlcheck -u tuusuario -p --repair tunombrebd wp_nombretabla

O desde phpMyAdmin como se explicó en la sección de reparar tablas.

«Disk full» o «Out of disk space»

MySQL no puede escribir más datos porque el disco está lleno. En cPanel, verifica el uso de disco en la barra lateral. Las causas más frecuentes:

  • Logs de MySQL que crecen sin control
  • Revisiones de WordPress acumuladas en wp_posts
  • Tablas de sesiones de plugins sin limpiar
  • Archivos de backup acumulados en el servidor

El artículo sobre cómo ver el estado de los discos en Linux explica cómo diagnosticar el problema desde SSH.

Liberar espacio rápidamente:

sql

-- Eliminar revisiones de WordPress
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Limpiar metadatos huérfanos
DELETE FROM wp_postmeta 
WHERE post_id NOT IN (SELECT ID FROM wp_posts);

-- Limpiar transients caducados
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_name LIKE '%timeout%' 
AND option_value < UNIX_TIMESTAMP();

MySQL vs MariaDB: qué usa cPanel

Los servidores de cPanel modernos usan MariaDB en lugar de MySQL. MariaDB es un fork completamente compatible de MySQL — todos los comandos, sintaxis SQL y herramientas funcionan igual. Para el usuario final y para los CMS como WordPress, la diferencia es transparente.

La ventaja de MariaDB es mejor rendimiento en cargas de trabajo típicas de hosting y actualizaciones de seguridad más frecuentes. En BlumHost usamos MariaDB 10.x, que es el estándar actual en servidores con cPanel.

Diferencias entre gestionar MySQL en hosting compartido y en VPS

En hosting compartido con cPanel tienes acceso a phpMyAdmin y a las herramientas de cPanel, pero no tienes acceso directo al servidor MySQL para cambiar la configuración global (buffers, conexiones máximas, etc.).

En un VPS con acceso root puedes:

bash

# Ver la configuración actual de MySQL
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"

# Editar la configuración global
nano /etc/mysql/mysql.conf.d/mysqld.cnf

# Reiniciar MySQL
systemctl restart mysql

# Ver el estado del servidor MySQL
mysqladmin -u root -p status

Parámetros importantes de MySQL a ajustar en VPS:

ini

[mysqld]
# Buffer pool: ajusta al 70-80% de la RAM disponible para MySQL
innodb_buffer_pool_size = 512M

# Tamaño del log de InnoDB
innodb_log_file_size = 128M

# Máximo de conexiones simultáneas
max_connections = 150

# Caché de consultas (MySQL 5.7, eliminado en MySQL 8)
query_cache_type = 1
query_cache_size = 64M

Si quieres más control sobre la configuración de MySQL, el artículo sobre cuándo necesitas un VPS explica cuándo tiene sentido dar ese salto.

👉 Ver planes de Hosting con MySQL desde 2€/mes


Preguntas frecuentes

¿Cuántas bases de datos puedo crear en cPanel?
En los planes de BlumHost el número de bases de datos MySQL es ilimitado en todos los planes. Puedes crear tantas como necesites para tus proyectos.

¿Cuál es el tamaño máximo de una base de datos en hosting compartido?
No hay un límite específico de tamaño de base de datos, pero el espacio en disco de tu cuenta es compartido entre archivos y bases de datos. Para bases de datos muy grandes (varios GB), un VPS con disco NVMe dedicado es más adecuado.

¿Puedo acceder a MySQL desde mi ordenador con MySQL Workbench?
Sí, activando el acceso remoto desde cPanel → MySQL remoto y añadiendo tu IP. Necesitarás el host del servidor, el puerto (3306), el usuario y la contraseña de la base de datos.

¿phpMyAdmin es seguro para gestionar bases de datos en producción?
phpMyAdmin es seguro si está correctamente actualizado y el acceso está protegido. cPanel gestiona la seguridad de phpMyAdmin automáticamente. Nunca dejes el archivo de configuración de phpMyAdmin con credenciales hardcodeadas accesible públicamente.

¿Qué diferencia hay entre la base de datos y el usuario de MySQL?
La base de datos es el contenedor que almacena los datos. El usuario es la credencial que permite acceder a ella. Una base de datos puede tener varios usuarios con diferentes niveles de acceso. Para WordPress, normalmente tienes un usuario por base de datos con todos los privilegios.

¿Puedo usar MySQL para proyectos que no son WordPress?
Sí. MySQL en cPanel es un servidor de base de datos estándar que puedes usar con cualquier aplicación que soporte MySQL o MariaDB: PHP, Python, Node.js, Ruby, aplicaciones a medida, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *