Problemas de base de datos MySQL
Muchos plugins de Minecraft (como LuckPerms, CoreProtect, EssentialsX, ShopGUI+, etc.) necesitan una base de datos MySQL para persistir datos. Esta guía cubre los errores más frecuentes y cómo resolverlos.
Crear una base de datos en SkyPanel
Antes de que un plugin pueda conectarse a MySQL, necesitas crear la base de datos desde el panel:
- Ve a tu servidor en panel.mixelnodes.com
- Haz clic en Databases en el menú lateral
- Haz clic en New Database
- Asigna un nombre descriptivo (ej:
luckperms,coreprotect) - Haz clic en Create
SkyPanel te mostrará:
- Host: la dirección del servidor MySQL (ej:
mysql.mixelnodes.com) - Port: normalmente
3306 - Database: el nombre de tu base de datos
- Username: generado automáticamente
- Password: generado automáticamente
Copia estos datos y configúralos en el plugin correspondiente.
Error: "Access denied for user"
Síntoma en logs
[ERROR] Access denied for user 'username'@'host' (using password: YES)
Causas y soluciones
1. Credenciales incorrectas en la configuración del plugin
Compara cuidadosamente las credenciales que SkyPanel muestra con lo que tienes en la configuración del plugin. Los errores más comunes son:
- Un espacio extra al copiar la contraseña
- Confundir el nombre de la base de datos con el usuario
- Haber cambiado la contraseña y olvidar actualizarla en el plugin
2. La base de datos fue eliminada y recreada
Cuando creas una nueva base de datos en SkyPanel, las credenciales cambian. Actualiza la configuración del plugin con las nuevas credenciales.
3. El plugin usa credenciales de un servidor anterior
Si migraste el servidor o clonaste la configuración, puede que las credenciales sean de otra instancia. Genera nuevas desde SkyPanel.
Error: "Communications link failure" / "Can't connect to MySQL server"
Síntoma en logs
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
o
[ERROR] Can't connect to MySQL server on 'host' (Connection refused)
Causas y soluciones
1. Host incorrecto
El host de MySQL en MixelNodes no es localhost — es una dirección externa que SkyPanel te proporciona en la sección Databases. Normalmente tiene el formato:
mysql.mixelnodes.com
# o
127.0.0.1:XXXX
Copia el host exactamente como aparece en el panel.
2. Puerto incorrecto
Verifica que usas el puerto que SkyPanel indica. En MixelNodes, el puerto de MySQL puede ser diferente al estándar 3306.
3. El servidor MySQL está temporalmente inaccesible
Ocurre raramente pero puede suceder durante mantenimientos. Si el error es repentino y todo estaba funcionando antes:
- Reinicia el servidor de Minecraft
- Si persiste, contacta con soporte — puede ser un problema del nodo
4. Firewall / red del servidor
Si ejecutas MySQL en un servidor externo (no el de MixelNodes), verifica que el firewall permite conexiones desde la IP del nodo de MixelNodes.
Error: "Too many connections"
Síntoma en logs
[ERROR] Too many connections
Causa
MySQL ha alcanzado el límite máximo de conexiones simultáneas. Esto puede ocurrir si:
- Tienes muchos plugins conectados a la misma base de datos simultáneamente
- Un plugin no cierra las conexiones correctamente (connection leak)
- El servidor se reinicia muchas veces rápido y las conexiones antiguas no se liberan
Solución
1. Configura un pool de conexiones en el plugin
La mayoría de plugins modernos (LuckPerms, CoreProtect, etc.) tienen opciones de pool de conexiones. Busca en la configuración del plugin opciones como:
storage-options:
maximum-pool-size: 10 # Máximo de conexiones abiertas
minimum-idle: 2 # Mínimo de conexiones en espera
maximum-lifetime: 1800000 # Tiempo máximo de vida de una conexión (ms)
connection-timeout: 5000 # Timeout al abrir una conexión (ms)
Reducir maximum-pool-size disminuye el número de conexiones simultáneas.
2. Reinicia el servidor
Si el problema es un connection leak, reiniciar el servidor cierra todas las conexiones huérfanas.
3. Contacta con soporte
Si el problema persiste, el límite de conexiones de la base de datos puede necesitar ajustarse en el servidor MySQL de MixelNodes.
Error: "Unknown database" / "Database doesn't exist"
Síntoma en logs
[ERROR] Unknown database 'nombre_db'
Causa
La base de datos referenciada en la configuración del plugin no existe.
Solución
- Verifica en SkyPanel → Databases que la base de datos existe y tiene el nombre correcto
- Si la base de datos fue eliminada, créala de nuevo
- Copia el nombre exacto (distingue mayúsculas/minúsculas) en la configuración del plugin
Error: "Table doesn't exist" al arrancar un plugin
Síntoma en logs
[ERROR] Table 'database.tabla' doesn't exist
Causa
El plugin intenta usar una tabla que no se ha creado aún. Normalmente los plugins crean sus tablas automáticamente en el primer arranque, pero si algo falla durante ese proceso, las tablas pueden quedar a medias.
Solución
Opción 1 — Borrar y recrear la base de datos
Si no hay datos que conservar:
- Elimina la base de datos desde SkyPanel → Databases
- Crea una nueva con el mismo nombre
- Reinicia el servidor — el plugin creará las tablas de cero
Opción 2 — Crear la tabla manualmente (avanzado)
Algunos plugins publican los schemas SQL en su documentación. Puedes ejecutarlos manualmente con un cliente MySQL.
Gestión avanzada de bases de datos
Conectarse a la base de datos con un cliente externo
Puedes usar clientes como TablePlus, HeidiSQL, DBeaver o MySQL Workbench para conectarte directamente y ejecutar consultas SQL.
Usa los datos de conexión que aparecen en SkyPanel → Databases.
Modificar las tablas manualmente puede corromper los datos del plugin. Solo hazlo si sabes lo que estás haciendo y tienes un backup reciente.
Hacer un backup manual de la base de datos
Desde la consola de SkyPanel (si tienes acceso SSH al nodo) o desde un cliente MySQL:
mysqldump -h HOST -P PUERTO -u USUARIO -p NOMBRE_DB > backup_$(date +%Y%m%d).sql
Guarda el archivo .sql en un lugar seguro. Para restaurarlo:
mysql -h HOST -P PUERTO -u USUARIO -p NOMBRE_DB < backup_20240115.sql
Resetear la base de datos de un plugin
Si quieres empezar de cero con un plugin (por ejemplo, resetear permisos de LuckPerms):
- Para el servidor
- Elimina la base de datos desde SkyPanel → Databases
- Crea una nueva con el mismo nombre o uno diferente (actualiza la config del plugin si cambias el nombre)
- Arranca el servidor — el plugin creará las tablas limpias
Plugins populares y su configuración MySQL
LuckPerms
# En plugins/LuckPerms/config.yml
storage-method: mysql
data:
address: HOST:PUERTO
database: NOMBRE_DB
username: USUARIO
password: CONTRASEÑA
pool-settings:
maximum-pool-size: 10
minimum-idle: 2
maximum-lifetime: 1800000
connection-timeout: 5000
CoreProtect
# En plugins/CoreProtect/config.yml
mysql: true
table-prefix: co_
host: HOST
port: PUERTO
database: NOMBRE_DB
username: USUARIO
password: CONTRASEÑA
EssentialsX
EssentialsX usa SQLite por defecto (archivo local). Si quieres usar MySQL, necesita el addon EssentialsX-MYSQL o configurar la opción correspondiente en su config.
Checklist de diagnóstico MySQL
Cuando un plugin no se conecta a MySQL, verifica en orden:
- La base de datos existe en SkyPanel → Databases
- El host es el que aparece en SkyPanel (no
localhost) - El puerto es el que aparece en SkyPanel (no asumas que es 3306)
- El nombre de usuario y contraseña son correctos (sin espacios)
- El nombre de la base de datos es correcto (sensible a mayúsculas)
- El plugin se reinició después de modificar la configuración
- El servidor tiene conectividad a MySQL (prueba reiniCiando el servidor)