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:
- cPanel → Bases de datos → Asistente para bases de datos MySQL
- 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á comoblum_nombrebd). - Paso 2 — Crear usuario: escribe el nombre de usuario y una contraseña segura. cPanel sugiere una contraseña aleatoria fuerte.
- 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.
- 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:
- cPanel → Bases de datos MySQL
- En la sección Crear nueva base de datos, escribe el nombre y haz clic en Crear base de datos
- En la sección Añadir nuevo usuario, crea el usuario con contraseña
- 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_):
| Tabla | Contenido |
|---|---|
wp_posts | Entradas, páginas, adjuntos, revisiones |
wp_postmeta | Metadatos de entradas (campos personalizados) |
wp_options | Configuración del sitio, opciones de plugins |
wp_users | Usuarios registrados |
wp_usermeta | Metadatos de usuarios (roles, preferencias) |
wp_terms | Categorías, etiquetas y taxonomías |
wp_term_relationships | Relación entre posts y términos |
wp_comments | Comentarios |
wp_commentmeta | Metadatos 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
- En phpMyAdmin, selecciona la base de datos en el panel izquierdo
- Haz clic en la pestaña Exportar
- Método: Rápido — exporta toda la base de datos
- Formato: SQL
- 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_optionsowp_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
- En phpMyAdmin, selecciona la base de datos de destino (debe existir y estar vacía, o con
DROP TABLEen el SQL) - Pestaña Importar
- Haz clic en Seleccionar archivo y elige el
.sql(o.sql.gz) - Formato: SQL (phpMyAdmin lo detecta automáticamente)
- 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:
- En phpMyAdmin, selecciona la base de datos
- En la lista de tablas, marca todas (o las que quieras optimizar)
- En el desplegable inferior, selecciona Optimizar tabla
- 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:
- En phpMyAdmin, selecciona la base de datos
- Marca las tablas afectadas
- 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:
| Privilegio | Descripción |
|---|---|
| ALL PRIVILEGES | Acceso completo (recomendado para CMS) |
| SELECT | Solo lectura |
| INSERT | Insertar datos |
| UPDATE | Modificar datos existentes |
| DELETE | Eliminar datos |
| CREATE | Crear tablas y bases de datos |
| DROP | Eliminar tablas y bases de datos |
| INDEX | Gestionar índices |
| ALTER | Modificar 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):
- cPanel → Bases de datos → MySQL remoto
- Añade la IP desde la que quieres conectarte
- 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:
- Selecciona la base de datos
- Desplázate hasta el final de la lista de tablas
- 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:
- Credenciales incorrectas en wp-config.php: verifica
DB_NAME,DB_USER,DB_PASSWORDyDB_HOST - El servidor MySQL está caído: comprueba en cPanel si puedes acceder a phpMyAdmin
- La base de datos no existe: verifica en cPanel → Bases de datos MySQL
- 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.
