Mysql
 sql >> Database >  >> RDS >> Mysql

Come riparare la tabella corrotta di xampp 'mysql.user'?

Questo è quasi certamente un bug noto in mariaDB (cioè mySQL ). Vedi ApacheFriends.org per la descrizione. Il problema si verifica dopo la password dell'utente modifiche - spesso utente root .

Il consiglio generale sembra essere quello di ridurre le perdite e di eseguire il downgrade del tuo XAMPP a 7.3.5

Altrimenti il ​​problema potrebbe ripresentarsi in seguito anche dopo ad esempio una disinstallazione/reinstallazione completa di 7.3.7.

Quella che segue è un'elusione/riparazione per gli utenti Windows/XAMPP. Presuppone che tu abbia un backup, cosa che probabilmente hai. (Sembra che il processo di installazione fornisca un backup iniziale.) L'idea è di rimetterti in onda senza eseguire il downgrade abbastanza a lungo da consentire l'arrivo della versione successiva.

La via più veloce per uscire dalla palude è andare al punto 9.

(1) Trova 'my.ini' (es. c:\xampp\mysql\bin\my.ini )
(2) Inserisci 'skip-grant-tables' in una nuova riga dopo l'etichetta '[mysqld] '. Rimuovilo più tardi.
(3) Ora mySQL può essere avviato dal pannello di controllo di XAMPP.
(4) Avvia phpMyAdmin dal browser e seleziona la tabella 'user' dal database 'mysql'
(5) Dovrebbe vedere:#1034 L'indice per la tabella 'utente' è danneggiato; prova a ripararlo.
(6) Seleziona 'mysql' dal pannello di sinistra, quindi seleziona 'utente' nel pannello di destra.
(7) Dal menu a discesa 'Con selezionato' esegui 'analizza' quindi 'ripara table'.
(8) Se 'Repair' non riesce, non c'è altra scelta che 'DROP TABLE user' ....

(9) Ricrea la tabella 'utente' dal backup della distribuzione copiando i seguenti 3 file.

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

a

C:\xampp\mysql\data\mysql\

quindi riavviare XAMPP e aggiungere/rimuovere/modificare utenti come desideri.

Un ultimo punto:sembra esserci una sorta di associazione tra le tabelle 'user' e 'db'. Potrebbe essere necessario riparare la tabella 'db' secondo il passaggio (7).