sql >> Database >  >> RDS >> Mysql

Vreemde MySQL alleen-lezen fout

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 ).



  1. Minimaal voorbeeld van het gebruik van select... for update om rijen te isoleren

  2. Optionele afhankelijkheden creëren

  3. Hoe genereer ik een willekeurig tijdsinterval en voeg ik het toe aan een mysql datetime met behulp van php?

  4. Praktische limiet voor de lengte van de SQL-query (met name MySQL)