Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment réparer la table xampp 'mysql.user' corrompue?

Il s'agit presque certainement d'un bogue connu dans mariaDB (c'est-à-dire mySQL ). Voir ApacheFriends.org pour le descriptif. Le problème survient après le mot de passe de l'utilisateur changements - souvent utilisateur root .

Le conseil général semble être de réduire vos pertes et de rétrograder votre XAMPP à 7.3.5

Sinon, le problème peut se reproduire plus tard, même après une désinstallation/réinstallation complète de 7.3.7 par exemple.

Ce qui suit est un contournement/réparation pour les utilisateurs de Windows/XAMPP. Il suppose que vous avez une sauvegarde - ce que vous faites probablement. (Il semble que le processus d'installation fournisse une sauvegarde initiale.) L'idée est de vous remettre en ondes sans rétrograder suffisamment longtemps pour que la prochaine version arrive.

Le moyen le plus rapide de sortir du marais est simplement de passer à l'étape 9.

(1) Trouvez 'my.ini' (ex. c:\xampp\mysql\bin\my.ini )
(2) Insérez 'skip-grant-tables' dans une nouvelle ligne après l'étiquette '[mysqld] '. Supprimez ceci plus tard.
(3) Maintenant, mySQL peut être démarré à partir du panneau de configuration XAMPP.
(4) Démarrez phpMyAdmin à partir du navigateur et sélectionnez la table 'user' dans la base de données 'mysql'
(5) Devrait voir :#1034 L'index de la table 'utilisateur' est corrompu; essayez de le réparer.
(6) Sélectionnez 'mysql' dans le panneau de gauche, puis cochez 'utilisateur' dans le panneau de droite.
(7) Dans le menu déroulant 'Avec sélection', lancez 'analyser' puis 'réparer table'.
(8) Si 'Repair' échoue, pas d'autre choix que de 'DROP TABLE user' ....

(9) Recréez la table 'user' à partir de la sauvegarde de la distribution en copiant les 3 fichiers suivants.

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

à

C:\xampp\mysql\data\mysql\

puis redémarrez XAMPP et ajoutez/supprimez/modifiez les utilisateurs comme vous le souhaitez.

Un dernier point :il semble y avoir une sorte d'association entre les tables 'user' et 'db'. Vous devrez peut-être réparer la table 'db' conformément à l'étape (7).