Come annullare l'eliminazione della account di root per MySQL

December 3

Come annullare l'eliminazione della account di root per MySQL


Se hai mai bloccato le chiavi in ​​una macchina, sei già familiarità con l'affondamento sensazione che si otterrà dopo aver capito di aver eliminato un account utente fondamentale per gestire un server di database MySQL. Per convenzione, MySQL super-utente è chiamato "root" e ha il potere di aggiungere e modificare altri account, creare ed eliminare i database ed eseguire tali funzioni di gestione, come l'arresto del server.

MySQL carichi informazioni su account utente in memoria all'avvio. Se si elimina accidentalmente un account "root" dalla tabella utente nel database, l'approccio di recupero dipenderà o meno di tali credenziali sono davanzale in memoria.

istruzione

Ancora credenziali radice vengono memorizzati nella cache

1 Eseguire il comando di login per l'utilità del monitor "mysql" al prompt dei comandi Linux o Windows:

mysql --user = root @ localhost --password = mypass

Sarà sostituire "mypass" con la password per l'account "root" tramite "localhost".

Se si è in grado di connettersi, rimanere loggato per l'utility "mysql" e procedere al passaggio 2. In caso contrario, passare al "Conto Root No Longer cache."

2 Digitare il seguente comando SQL mentre ancora registrato per l'utility "mysql":

INSERT INTO mysql.user (Host, Utente, Password) VALORI ( 'localhost', 'root', PASSWORD ( 'mypass'));

Questo crea un utente "root" con una password corrispondente il testo per "miapass." virgolette sono necessarie, ma la capitalizzazione di comandi SQL è facoltativo.

3 Digitare il seguente comando SQL:

GRANT ALL ON PRIVILEGI PER 'root' @ 'localhost' CON GRANT

OPTION.;

Questo assegnerà tutti i privilegi per il nuovo account.

Account di root non più Cached

4 Arrestare il server MySQL.

Su un sistema Linux con uno script di start / stop mysql, questo è in genere fatto come l'amministratore di sistema digitando un comando come:

/etc/rc.d/init.d/mysql smettere

Sui sistemi Windows, selezionare il Pannello di controllo dal menu Start e aprire gli strumenti di cartelle di amministrazione. Fare doppio clic sull'icona Servizi e scorrere l'elenco per trovare la voce "MySQL". Pulsante destro del mouse su questo e selezionare "Stop" nel menu a comparsa.

5 Aprire un editor di testo e digitare i seguenti comandi SQL:

INSERT INTO mysql.user (Host, Utente, Password) VALORI ( 'localhost', 'root', PASSWORD ( 'mypass'));

GRANT ALL ON PRIVILEGI PER 'root' @ 'localhost' CON GRANT

OPTION.;

TABELLE sciacquone;

Anche in questo caso, "mypass" sarà la password che preferisci per il tuo account "root". Salvare il file di testo. In questo esempio, il nome file "root.sql" è usato.

6 Inserisci questo comando su sistemi Linux per avviare il server MySQL (evitando il solito script di avvio / arresto) e costringerlo a elaborare i comandi nel file di testo:

safe_mysqld --init-file = root.sql

Su Windows, il comando è:

--init file mysqld-nt = root.sql

Potrebbe essere necessario fornire il percorso completo di "safe_mysqld" o "mysqld-nt", come con "root.sql."

7 Arrestare il server di nuovo. Ora è possibile eseguire il programma di utilità "mysqladmin" come il nuovo utente "root":

mysqladmin shutdown --user = root --password = mypass

Potrebbe essere necessario includere il percorso completo dell'eseguibile "mysqladmin" sul sistema. Ciò che si digita al posto di "mypass" di cui sopra sarebbe la password digitata quando si crea il file "root.sql".

8 Avviare il server MySQL come si fa normalmente per l'uso in produzione regolare.