Zoals ik het zie zijn er twee algemene redenen waarom uw database is ingesteld op alleen-lezen:
1) MySQL stelt zichzelf in op alleen-lezen
Ik weet niet zeker waardoor MySQL alleen-lezen kan worden, misschien schijfproblemen of beschadiging van de database? Ik zou in ieder geval verwachten dat er iets in de logs zou verschijnen, dus controleer de MySQL (en systeem) logs.
2) Een klant stelt de database alleen-lezen in
Clients die verbinding maken met MySQL kunnen de database alleen-lezen instellen met het commando:
SET GLOBAL read_only = ON;
hiervoor moet de gebruiker echter SUPER
. hebben voorrechten. Deze toestemming zou niet nodig moeten zijn voor websites, applicaties, enz. die MySQL gebruiken - bewaar het alleen voor een beheerdersaccount dat u gebruikt voor het beheren van de database.
Vergrendel de machtigingen die elke gebruiker heeft, zodat ze alleen toestemming hebben om de dingen te doen die ze nodig hebben op de databases / tabellen die van toepassing zijn. Als u kant-en-klare toepassingen gebruikt, moeten deze worden geleverd met instructies waarin wordt beschreven welke machtigingen vereist zijn (bijv. SELECT, INSERT, DELETE, UPDATE
).