GNU/Linux >> Linux Esercitazione >  >> Linux

Come reimpostare la password di root di MySQL

In questo articolo ti mostrerò come reimpostare la password di root di MySQL in due modi diversi. Inoltre, entrambi i metodi funzionano con il fork MariaDB senza Oracle.

Perché?

Ci sono due ragioni principali per cui è necessario reimpostare la password di root:

  • hai dimenticato quella password
  • tu non lo sai quella password

Potrebbero esserci molte ragioni per non conoscere la password:non hai mai saputo la password e il vecchio DBA è andato; qualcuno è cambiato per motivi divertenti o dannosi; sono le 3 del mattino, il sistema va in crash e il dba è in vacanza in un altro paese, ecc.

Il fatto è che una mattina devi riempire il database e arrivare a questa situazione:

Presumo che tu abbia un superutente (ad esempio su o sudo a root) l'accesso al Sistema Operativo. Il mio sistema operativo in questo tutorial è Debian Linux.

Entrambi i metodi richiedono di interrompere prima il servizio MySQL. Fallo con (non dimenticare di su/sudo se necessario):

# service mysql stop

Metodo 1:

Crea un file con il comando SQL per impostare una nuova password di root che useremo in mysql start. Puoi utilizzare qualsiasi editor di testo o semplicemente digitare:

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

Se scegli l'editor di testo, crea un file con solo la parte in grassetto. Naturalmente, scegli un reale password, facile da ricordare e difficile da scoprire.

E avvialo manualmente con l'utente mysql ( -u mysql) e con il file che abbiamo creato prima (–init-file:passreset.sql). La riga di comando completa sarebbe:

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

Attendi fino al messaggio:mysqld:pronto per le connessioni . Quindi apri un'altra console per testare la tua nuova password di root:

Metodo 2:

In passato ho visto questo come reimpostare la password di root di MySQL diverse volte su Internet. Al primo tentativo questa mattina non ha funzionato per me, ma ho trovato una soluzione alternativa.

Useremo questa opzione del comando mysqld:

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

Questo mi ha lasciato pieno accesso a tutte le tabelle. La procedura consiste nel connettersi a mysql ed eseguire il comando ALTER USER che abbiamo visto nel metodo precedente, ma ho ricevuto un errore su mysqld in esecuzione con skip-grant-tables.

La soluzione alternativa è eseguire mysqld con l'opzione skip-grant-tables e utilizzare l'utente mysql. La riga di comando completa è:

# mysqld -u mysql --skip-grant-tables

E, in un'altra console, svuota i privilegi prima dell'aggiornamento, quindi scarica nuovamente i privilegi:

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

Fine

Ora puoi fermare MySQL e avviarlo normalmente. Nel mio caso, ctrl-c non ha funzionato per fermarlo, devo terminare il processo avviato manualmente prima:

# killall mysqld
# service mysql start

E il gioco è fatto, con uno di quei metodi riprendi il controllo sul tuo MySQL o MariaDB.


Linux
  1. Come reimpostare la password di root MySQL su CentOS 6

  2. Come reimpostare la password di root MySql

  3. Come reimpostare la password di Ubuntu?

  4. Come reimpostare la password di root di MySQL o MariaDB

  5. Come reimpostare la password di root server MySQL

Come reimpostare la password dell'utente root MySQL in Linux

Come reimpostare la password di root in Fedora 35

Come reimpostare la password di root su Debian 11

Come modificare/reimpostare la password di root di MySQL o MariaDB

Come ripristinare la password di root di MySQL 8.0 su Centos 7.x?

Come reimpostare la password di root in CentOS/RHEL 8