Muchos plugins guardan datos de forma permanente: permisos, saldos, registros o el historial de acciones de construcción. Para ello usan una base de datos MySQL o MariaDB a la que acceden a través de la red, o archivos en su propia carpeta dentro de plugins/, como una base de datos SQLite o H2, es decir, una base de datos completa en un único archivo. Si no se puede abrir o guardar, al plugin le faltan sus datos o se pierden los cambios nuevos.
Cada apartado de abajo trata un mensaje. Encontrarás el mensaje completo en la Consola o en Archivos, dentro de logs/latest.log. Las líneas inmediatamente posteriores suelen indicar la causa exacta. Antes de tocar carpetas de plugins, archivos de base de datos o configuraciones, crea una copia en Copias de seguridad, y elimina o mueve archivos de base de datos solo con el servidor detenido.
La base de datos deniega el acceso: usuario o contraseña incorrectos
Así se ve el mensaje:
java.sql.SQLException: Access denied for user '<Usuario>'@'<Dirección>' (using password: YES)
Qué hay detrás: Un plugin como LuckPerms o CoreProtect quiere conectarse a su base de datos MySQL o MariaDB, pero el nombre de usuario o la contraseña no coinciden. La base de datos rechaza el inicio de sesión. Así, el plugin no puede cargar ni guardar datos: según el plugin, ni siquiera se inicia o funciona sin sus permisos, saldos o registros, y los cambios nuevos no llegan a la base de datos. Si al final aparece using password: NO, es que en la configuración no hay ninguna contraseña.
Así lo solucionas:
- Consulta en Bases de datos o en tu complemento de base de datos qué credenciales son las correctas: host, puerto, nombre de la base de datos, usuario y contraseña.
- En Archivos, abre la configuración del plugin; en LuckPerms, por ejemplo,
plugins/LuckPerms/config.yml, seccióndata. - Introduce todos los valores exactamente como aparecen en el panel. Presta atención a las mayúsculas y minúsculas y a los espacios al final.
- Si la contraseña contiene caracteres especiales como
#o:, ponla entre comillas simples. De lo contrario, YAML, el formato de texto de estos archivos, leerá el valor de forma incorrecta. - Guarda el archivo y reinicia el servidor.
Conviene saber: Si se restableció la contraseña de la base de datos, la anterior ya no sirve en ninguna configuración de plugin. Introduce la nueva en todos los lugares donde se use la base de datos.
spark no puede crear sus archivos temporales
Así se ve el mensaje:
[spark] Exception occurred while rotating profiler job
java.lang.RuntimeException: Unable to create temporary output file
[spark] Failed to stop previous profiler job
Qué hay detrás: spark es un profiler, es decir, una herramienta de medición que registra en qué emplea el servidor su tiempo de cálculo. spark guarda sus archivos temporales en la carpeta plugins/spark/tmp-client. Si falta esta carpeta, cada ciclo de medición falla y spark lo reintenta cada minuto. Por eso aparecen tantos mensajes iguales. Tu servidor sigue funcionando sin verse afectado, y no se trata de un problema de espacio de almacenamiento ni de permisos.
Así lo solucionas:
- Lo más rápido es usar el botón «Reparar automáticamente» junto al mensaje en Salud del servidor.
- A mano: abre Archivos, entra en la carpeta
plugins/sparky crea dentro la carpetatmp-client. Fíjate en que esté escrita exactamente igual. - Observa la Consola durante unos minutos. Los mensajes deberían dejar de aparecer.
Conviene saber: Reiniciar por sí solo no ayuda, porque spark no vuelve a crear la carpeta por su cuenta. Cómo usar spark para buscar el lag lo explica spark: encontrar y entender el lag.
Un plugin no puede alcanzar su base de datos
Así se ve el mensaje:
<Plugin>-hikari - Connection is not available, request timed out after <Tiempo>ms.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
[LuckPerms] Failed to init storage
Qué hay detrás: El plugin no consigue conexión con su base de datos MySQL o MariaDB. Motivos típicos: el host de la configuración es incorrecto, la base de datos está detenida o se ha cortado una conexión existente. «Hikari» es el pool de conexiones, que mantiene disponibles las conexiones a la base de datos para el plugin. Mientras esto continúe, al plugin le faltarán sus datos.
Así lo solucionas:
- Comprueba si tu complemento de base de datos está en marcha.
- Compara el host y el puerto de la configuración del plugin con los datos de Bases de datos o del complemento. No introduzcas simplemente
localhost, sino exactamente el host del panel. - Reinicia el servidor y observa en la Consola los mensajes de inicio del plugin.
- Si no necesitas una base de datos propia, cambia el plugin a almacenamiento local; en LuckPerms, con
storage-method: h2enplugins/LuckPerms/config.yml. Los datos de la base de datos no se trasladan automáticamente.
Conviene saber: Si después de «Error whilst saving group» aparece el aviso «Value too long», la culpa no es de la conexión. En ese caso, una entrada supera los 200 caracteres que LuckPerms permite, por ejemplo un prefijo con muchos códigos de color. Acórtala.
Grim no puede abrir su base de datos de historial
Así se ve el mensaje:
IMPORTANT: Could not load SQLite driver for /grim history database.
Download the minecraft-sqlite-jdbc mod/plugin …, or change history.database.type
Alternatively set history.enabled=false to remove this message …
Qué hay detrás: Grim es un plugin anticheat. Con /grim history muestra análisis anteriores de un jugador y los guarda para ello en una base de datos SQLite, una base de datos contenida en un único archivo. Para abrirla, Grim necesita un controlador SQLite, un pequeño paquete adicional para el acceso a la base de datos. Este controlador falta, por eso la base de datos de historial no está disponible.
Así lo solucionas:
- En Plugins o Mods, instala la dependencia minecraft-sqlite-jdbc en la versión que corresponda a tu versión de Grim.
- Como alternativa, elige otra base de datos de historial en la configuración de Grim, en
history.database.type. - Si no necesitas el historial, desactívalo: en la configuración es el valor
enabledde la secciónhistory; el mensaje lo escribe comohistory.enabled=false. - Detén el servidor por completo y vuelve a iniciarlo.
Conviene saber: El mensaje aparece en cada inicio hasta que apliques una de las tres soluciones.
LuckPerms no puede actualizar su base de datos
Así se ve el mensaje:
[LuckPerms] Something went wrong whilst upgrading the LuckPerms database. Please report this on GitHub.
org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "<Nombre>" already exists; SQL statement:
Qué hay detrás: Al cambiar de versión, LuckPerms adapta la estructura de su base de datos a la nueva versión. Este paso no se completó correctamente. La línea inmediatamente posterior, normalmente un mensaje de H2 o SQL, indica el paso que falló. H2 es el archivo de base de datos que LuckPerms crea en la carpeta plugins/LuckPerms cuando no tiene una base de datos MySQL propia.
Así lo solucionas:
- Detén el servidor y crea una copia en Copias de seguridad antes de volver a intentarlo.
- Actualiza LuckPerms a una compilación actual que sea compatible con el software y la versión de tu servidor.
- No borres ni edites a mano los archivos de la base de datos.
- Si el error vuelve a aparecer, restaura la copia de seguridad. Después te pueden ayudar la migración oficial de LuckPerms o el soporte de LuckPerms.
Conviene saber: Mientras LuckPerms siga funcionando, guarda además todos los permisos y grupos en un archivo con lp export <Archivo>. Con lp import <Archivo> los puedes volver a cargar más tarde.
Con más detalle: Actualizar LuckPerms con seguridad: plataforma, copia de seguridad y permisos
Falta la carpeta de base de datos de un plugin
Así se ve el mensaje:
java.sql.SQLException: path to 'plugins/<Plugin>/databases/<Archivo>.db': '/home/container/plugins/<Plugin>/databases' does not exist
Qué hay detrás: El plugin guarda sus datos en una base de datos SQLite, es decir, en un único archivo dentro de la carpeta del plugin. El archivo puede crearlo él mismo, pero no la carpeta que lo contiene. Mientras falte esa carpeta, el plugin no puede cargar ni guardar nada, por ejemplo saldos, kits o warps. Esto puede ocurrir, por ejemplo, si se ha borrado la carpeta de un plugin o solo se ha subido parcialmente.
Así lo solucionas:
- Lee en el mensaje la carpeta que aparece tras los dos puntos; en el ejemplo,
plugins/<Plugin>/databases. - Abre Archivos y crea exactamente esa carpeta. Presta atención a las mayúsculas y minúsculas:
Databasesydatabasesson carpetas distintas. - Reinicia el servidor y comprueba que el mensaje deja de aparecer.
Conviene saber: /home/container es el directorio superior que ves en Archivos. Esa parte de la ruta la omites al crear la carpeta.
Un plugin envía comandos SQLite que solo MySQL entiende
Así se ve el mensaje:
[SQLITE_ERROR] SQL error or missing database (near "<Palabra>": syntax error)
Qué hay detrás: SQLite y MySQL hablan casi, pero no del todo, el mismo lenguaje de base de datos. El plugin guarda sus datos en SQLite, pero envía comandos que solo entiende MySQL. Es un error del plugin, no de tus archivos ni de tus ajustes. Las funciones afectadas no guardan nada. La palabra después de near indica en qué punto SQLite no entendió el comando.
Cómo solucionarlo:
- Actualiza el plugin en Plugins a la última versión para la versión de tu servidor. Quizá el error ya esté corregido allí.
- Si el plugin ofrece MySQL como almacenamiento, crea una base de datos en Bases de datos, siempre que tu plan incluya bases de datos.
- En la configuración del plugin, cambia el almacenamiento a MySQL, introduce los datos de acceso y reinicia el servidor.
- Si ninguna de las dos opciones funciona, informa del error al autor del plugin y adjunta la línea del log.
Bueno saber: Al cambiar a MySQL, un plugin normalmente no importa por sí solo los datos antiguos de SQLite, a menos que ofrezca una función propia para ello.
EzShops o Jaloquent no alcanzan su almacenamiento
Así se ve el mensaje:
[EzShops] Failed to initialise Jaloquent for player shops; falling back to YAML
com.github.ezframework.jaloquent.exception.StorageException: Failed to begin transaction
Qué hay detrás: Jaloquent es la biblioteca de almacenamiento con la que EzShops guarda las tiendas de los jugadores en una base de datos. Aquí Jaloquent no pudo iniciar una transacción, es decir, una operación de escritura conjunta, o EzShops no pudo configurar su almacenamiento de Jaloquent. La causa real aparece justo después en el mensaje de error. EzShops puede recurrir en parte a archivos YAML; en ese caso los datos acaban en archivos en lugar de en la base de datos.
Cómo solucionarlo:
- Lee en
logs/latest.logel mensaje de error justo debajo de esta línea. Indica la causa de la base de datos o del almacenamiento, por ejemplo „Access denied“ o „Communications link failure“. - Comprueba si tu complemento de base de datos está en funcionamiento.
- Revisa el host, el puerto y los datos de acceso en la configuración del plugin afectado.
- Si EzShops ha recurrido a YAML, crea una copia de seguridad en Copias de seguridad antes de cambiar nada. Así se conservan las tiendas que se guardaron entretanto en YAML.
- Reinicia el servidor.
PvPManager no encuentra su carpeta de base de datos
Así se ve el mensaje:
[PvPManager] Failed to batch update database
java.sql.SQLException: path to 'plugins/PvPManager/database.db': '<Ruta>' does not exist
Qué hay detrás: PvPManager regula el combate entre jugadores y guarda los datos de los jugadores en la base de datos SQLite plugins/PvPManager/database.db. Sin embargo, la carpeta plugins/PvPManager no existe en el sistema de archivos del servidor. Por eso PvPManager no puede abrir ni escribir su base de datos, y los datos nuevos no se guardan.
Cómo solucionarlo:
- Detén el servidor.
- En Archivos, crea la carpeta
plugins/PvPManagery presta atención a la escritura exacta. Como alternativa, reinstala PvPManager limpiamente en Plugins. - Comprueba los permisos de archivos: crea un archivo de prueba en la carpeta nueva y bórralo de nuevo.
- Comprueba si queda suficiente espacio libre.
- Inicia el servidor y comprueba que el mensaje ya no aparece.
Bueno saber: Si el almacenamiento está lleno, te ayuda Espacio lleno: solucionar „No space left on device“.
EssentialsX no puede guardar su caché de UUID
Así se ve el mensaje:
[Essentials] Error while saving Name->UUID cache
java.io.IOException: No such file or directory
Qué hay detrás: EssentialsX recuerda qué nombre de jugador corresponde a qué UUID, el identificador fijo de una cuenta de Minecraft. Escribe esta lista como caché, es decir, como memoria intermedia, en su carpeta de datos y para ello crea primero un archivo temporal. Esto falla porque la carpeta plugins/Essentials no existe o no se puede escribir en ella. Si la carpeta realmente no existe, EssentialsX tampoco puede guardar allí el resto de sus datos.
Cómo solucionarlo:
- Abre Archivos y comprueba si existe la carpeta
plugins/Essentials. Si no, créala. - Comprueba si se puede escribir en ella: crea un archivo de prueba dentro y bórralo de nuevo.
- Actualiza EssentialsX en Plugins a una versión para la versión de tu servidor.
- Reinicia el servidor.
Bueno saber: Si no se puede crear ningún archivo en la carpeta, probablemente no pertenece al usuario bajo el que se ejecuta tu servidor. Si no avanzas, abre un ticket e indica la hora del mensaje.
FastAsyncWorldEdit: un archivo de historial está dañado
Así se ve el mensaje:
Could not load block history file plugins/FastAsyncWorldEdit/history/<Carpeta>/<Archivo>
An unexpected error while handling a FastAsyncWorldEdit command
java.io.EOFException: Stream ended prematurely
Qué hay detrás: FastAsyncWorldEdit, abreviado FAWE, guarda un archivo de historial por cada acción de construcción para que puedas deshacerla con //undo. Uno de estos archivos está incompleto, normalmente porque el servidor se detuvo mientras FAWE aún estaba escribiendo. Precisamente ese //undo ya no es posible. Tu mundo no se ve afectado y el servidor sigue funcionando con normalidad.
Cómo solucionarlo:
- Normalmente no hace falta hacer nada. El mensaje solo afecta a ese paso del historial.
- Si se repite, detén el servidor.
- En Archivos, borra la carpeta indicada en el mensaje dentro de
plugins/FastAsyncWorldEdit/history. - Inicia el servidor de nuevo.
Bueno saber: Tras borrarla, las acciones de esa carpeta ya no se podrán deshacer. Más sobre //undo: WorldEdit: construir y deshacer.
WorldEdit: no se puede cargar el portapapeles guardado
Así se ve el mensaje:
Error loading clipboard from disk
… Size exceeds Integer.MAX_VALUE
Qué hay detrás: FAWE puede guardar en el disco el portapapeles de un jugador. El portapapeles guardado no se pudo cargar: o bien es demasiado grande, y entonces en el mensaje aparece „Size exceeds Integer.MAX_VALUE“, o bien está dañado. El jugador tiene que volver a copiar su selección. El mundo y el servidor no se ven afectados.
Cómo solucionarlo:
- Detén el servidor.
- En Archivos, abre la carpeta
plugins/FastAsyncWorldEdit/clipboard. - Borra el archivo del jugador afectado. Su nombre suele contener su UUID, el identificador fijo de su cuenta de Minecraft.
- Inicia el servidor de nuevo y pide al jugador que vuelva a copiar la selección.
Bueno saber: Las copias muy grandes es mejor guardarlas como schematic, es decir, como un archivo de plano de construcción propio, por ejemplo con //schem save <Nombre>. Lo cargas de nuevo en el portapapeles cuando lo necesites con //schem load <Nombre>.
WorldEdit: Una schematic contiene una entidad sin posición
Así se ve el mensaje:
Failed to load a saved clipboard
java.io.IOException: Missing position for entity <Entidad>
Qué hay detrás: Las entidades son todo lo que hay en el mundo que no es un bloque, por ejemplo animales, soportes para armaduras o marcos. La schematic guardada, es decir, el archivo del plano de construcción, contiene una entidad a la que le falta la indicación de posición. Por eso WorldEdit no puede cargar la schematic por completo. Tu mundo no se ve afectado; solo esta schematic no se puede pegar correctamente.
Cómo solucionarlo:
- Si la construcción todavía está en un mundo, selecciónala de nuevo con WorldEdit y cópiala con
//copysin la opción-e. Así se dejan fuera las entidades. - Guarda la nueva copia con
//schem save <Nombre>con un nombre nuevo y usa a partir de ahora ese archivo. - Si solo tienes el archivo, ábrelo en un editor de schematics y elimina la entidad dañada.
- Después carga la schematic con
//schem load <Nombre>y comprueba que el mensaje ya no aparece.
Bueno saber: Si no necesitas animales ni marcos en la construcción, guardar sin entidades es el camino más rápido.
Falta una carpeta de caché
Así se ve el mensaje:
java.nio.file.NoSuchFileException: /home/container/.cache/<Archivo>
Qué hay detrás: Un mod o un launcher, es decir, un programa de inicio, quería guardar archivos en la carpeta .cache del directorio raíz de tu servidor. Pero esa carpeta no existe. Esto suele pasar después de una reinstalación o si la carpeta se eliminó al limpiar. Normalmente se soluciona solo, porque el siguiente inicio vuelve a crear la carpeta.
Cómo solucionarlo:
- Reinicia el servidor una vez. En la mayoría de los casos el mensaje desaparece después.
- Si sigue apareciendo, abre Archivos y crea una carpeta de prueba en el directorio raíz. Si no funciona, el directorio no es escribible.
- Comprueba si todavía queda suficiente espacio de almacenamiento libre. Un almacenamiento lleno también impide que se creen carpetas.
- Si no avanzas, abre un ticket e indica la hora del mensaje.
Bueno saber: Si el almacenamiento está lleno, te ayuda Almacenamiento lleno: solucionar «No space left on device».
El plugin de homes no puede guardar un punto de teletransporte
Así se ve el mensaje:
Failed to create home for player <Player-ID> in the database.
Qué hay detrás: Un home es un punto de teletransporte guardado. El plugin responsable intenta crear una nueva entrada en su base de datos y falla en el intento. La nueva entrada de home no se guarda; el servidor sigue funcionando. La causa concreta en la base de datos suele aparecer en los mensajes de error contiguos.
Así lo solucionas:
- Abre en la Consola o en Archivos el fichero
logs/latest.logy revisa las líneas inmediatamente anteriores y posteriores al mensaje. Busca el nombre del plugin y el mensaje de error de la base de datos correspondiente. - Revisa la configuración de almacenamiento de este plugin. Si usa una base de datos externa, compara la dirección, la base de datos y las credenciales con Bases de datos.
- Haz una copia de seguridad de la base de datos existente antes de cambiar sus ajustes o tablas. Después, corrige el error concreto indicado siguiendo la documentación del plugin.
- Intenta crear el home de nuevo. Si el error persiste, comunícaselo al autor con la traza de error completa y la hora.
Bueno saber: Borrar la base de datos también elimina los homes ya guardados.
¿Tu mensaje no aparece aquí?
Lee el mensaje completo en logs/latest.log, así como las líneas anteriores y posteriores. En los errores de base de datos, la causa real suele estar en una línea con «Caused by». El nombre entre corchetes y los nombres de carpeta en el stacktrace, es decir, en las líneas at … bajo el mensaje, te indican qué plugin está afectado, por ejemplo me/lucko/luckperms para LuckPerms. Después comprueba los datos de acceso, las carpetas y el espacio libre. Crea una copia de seguridad antes de cualquier cambio. Si no avanzas, abre un ticket e indica la hora del mensaje.