LuckPerms

LuckPerms

41.4k Downloads

The database is read only

PilgrimViis opened this issue ยท 3 comments

commented

Hi, I'm using LP v4.2.51 on Spigot 12.2 and today I encouter an error while trying to delete a group and I don't know how to deal with it. Also I'm getting the same error message "The database is read only" on all my lp commans, but some of them do what I want and some don't. Server restart didn't work. What can I do about it? Please help.

[08:04:11] [Server thread/INFO]: PilgrimViis issued server command: /lp deletegroup wizard
[08:04:11] [pool-7-thread-1/WARN]: java.util.concurrent.ExecutionException: org.h2.jdbc.JdbcSQLException: The database is read only; SQL statement:
DELETE FROM luckperms_group_permissions WHERE name=? [90097-197]
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.commands.group.DeleteGroup.execute(DeleteGroup.java:73)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.command.abstraction.SingleCommand.execute(SingleCommand.java:50)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.command.abstraction.SingleCommand.execute(SingleCommand.java:42)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.command.CommandManager.execute(CommandManager.java:217)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.command.CommandManager.lambda$onCommand$0(CommandManager.java:157)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.lang.Thread.run(Thread.java:748)
[08:04:11] [pool-7-thread-1/WARN]: Caused by: org.h2.jdbc.JdbcSQLException: The database is read only; SQL statement:
DELETE FROM luckperms_group_permissions WHERE name=? [90097-197]
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.message.DbException.get(DbException.java:179)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.message.DbException.get(DbException.java:155)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.message.DbException.get(DbException.java:144)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.engine.Database.checkWritingAllowed(Database.java:1989)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.table.Table.checkWritingAllowed(Table.java:1201)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.engine.User.hasRight(User.java:114)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.engine.User.checkRight(User.java:100)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.command.dml.Delete.update(Delete.java:65)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.command.CommandContainer.update(CommandContainer.java:102)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.command.Command.executeUpdate(Command.java:261)
[08:04:11] [pool-7-thread-1/WARN]: 	at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:249)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.storage.dao.sql.SqlDao.deleteGroup(SqlDao.java:728)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.storage.AbstractStorage.lambda$deleteGroup$12(AbstractStorage.java:227)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$1(AbstractStorage.java:102)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626)
[08:04:11] [pool-7-thread-1/WARN]: 	at me.lucko.luckperms.common.plugin.scheduler.AbstractJavaScheduler$WrappedRunnable.run(AbstractJavaScheduler.java:79)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[08:04:11] [pool-7-thread-1/WARN]: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[08:04:11] [pool-7-thread-1/WARN]: 	... 3 more
commented

This is likely an error with the privileges that the MySQL user for your LuckPerms instance has. Check, if the MySQL user has all needed privileges granted or optionally grant all privileges on your LuckPerms database for the LuckPerms user. e.g. (SQL):

GRANT ALL PRIVILEGES ON luckperms_db_name.* TO USER 'luckperms_db_user'@'%'
(replace luckperms_db_name with your database's name, replace luckperms_db_user with the MySQL user LuckPerms uses to connect to that database, replace % with localhost, if the MySQL-Database runs on the same host as LuckPerms does)

commented

Thanks for answering. I restored database from night backup and it start working.

commented

Yea, sounds like a corrupted database file.