Som jag ser det finns det två breda skäl till varför din databas ställs in på skrivskyddad:
1) MySQL ställer in sig själv som skrivskyddad
Jag är inte säker på vad som kan få MySQL att gå skrivskyddat, kanske diskproblem eller korruption av databasen? I vilket fall som helst skulle jag förvänta mig att något skulle dyka upp i loggarna, så kontrollera MySQL (och system)-loggarna.
2) En klient ställer in databasen skrivskyddad
Klienter som ansluter till MySQL kan ställa in databasen skrivskyddad med kommandot:
SET GLOBAL read_only = ON;
Men för att göra detta måste användaren ha SUPER
privilegier. Denna behörighet bör inte behövas för webbplatser, applikationer etc som använder MySQL - behåll den endast för ett administratörskonto som du använder för att administrera databasen.
Lås ner de behörigheter som varje användare har så att de bara har behörighet att göra de saker som de behöver på de databaser/tabeller som är tillämpliga. Om du använder några färdiga applikationer bör de levereras med instruktioner som beskriver vilka behörigheter som krävs (t.ex. SELECT, INSERT, DELETE, UPDATE
).