sql >> Database >  >> RDS >> Mysql

Hoe repareren corrupte xampp 'mysql.user' tabel?

Dit is vrijwel zeker een bekende bug in mariaDB (dwz mySQL ). Zie ApacheFriends.org voor de beschrijving. Probleem treedt op nadat gebruiker wachtwoord wijzigingen - vaak gebruiker root .

Algemeen advies lijkt te zijn om uw verliezen te beperken en uw XAMPP te downgraden naar 7.3.5

Anders kan het probleem later terugkeren, zelfs na een volledige verwijdering/herinstallatie van 7.3.7 bijvoorbeeld.

Wat volgt is een omzeiling/reparatie voor Windows/XAMPP-gebruikers. Het gaat ervan uit dat u een back-up hebt - wat u waarschijnlijk ook doet. (Het lijkt erop dat het installatieproces een eerste back-up biedt.) Het idee is om je weer in de lucht te krijgen zonder lang genoeg te downgraden tot de volgende release arriveert.

De snelste manier om uit het moeras te komen is door naar stap 9 te gaan.

(1) Zoek 'my.ini' (bijv. c:\xampp\mysql\bin\my.ini )
(2) Voeg 'skip-grant-tables' in op een nieuwe regel na het label '[mysqld] '. Verwijder dit later.
(3) Nu kan mySQL worden gestart vanuit het XAMPP-configuratiescherm.
(4) Start phpMyAdmin vanuit de browser en selecteer tabel 'gebruiker' uit database 'mysql'
(5) Zou moeten zien:#1034 Index voor tabel 'gebruiker' is beschadigd; probeer het te repareren.
(6) Selecteer 'mysql' in het linkerdeelvenster en vink vervolgens 'gebruiker' aan in het rechterdeelvenster.
(7) Voer in de vervolgkeuzelijst 'Met geselecteerd' 'analyseren' uit en vervolgens 'repareren' table'.
(8) Als 'Repair' niet werkt, rest ons niets anders dan 'DROP TABLE user' ....

(9) Maak de 'gebruiker'-tabel opnieuw vanuit de distributieback-up door de volgende 3 bestanden te kopiëren.

C:\xampp\mysql\backup\mysql\user.frm 
C:\xampp\mysql\backup\mysql\user.MYD
C:\xampp\mysql\backup\mysql\user.MYI

naar

C:\xampp\mysql\data\mysql\

herstart vervolgens XAMPP en voeg naar wens gebruikers toe/verwijder/bewerk ze.

Een laatste punt:er lijkt een soort verband te bestaan ​​tussen de 'user'- en 'db'-tabellen. Mogelijk moet u de 'db'-tabel herstellen volgens stap (7).



  1. MySQL:beperking controleren met datum

  2. Waarschuwing:mysql_real_escape_string():Toegang geweigerd voor gebruiker ''@'localhost' (met wachtwoord:NEE)

  3. MySQL SQRT() Functie – Retourneer de vierkantswortel van een getal in MySQL

  4. Hoe privileges te beheren met rollen in MySQL