Come reimpostare la password di root di MySQL o MariaDB su Windows

ThLa password di root viene impostata durante l’installazione del DBMS. Se l’installazione è stata eseguita manualmente, ovvero senza un programma di installazione, come descritto, ad esempio, in questo articolo , allora la password potrebbe non essere impostata affatto.

Se utilizzi assembly già pronti che includono MySQL/MariaDB, chiedi la password sui siti ufficiali di questi assembly. Prova anche queste credenziali:

  • Utente: root
  • Parola d’ordine: root

Se hai davvero dimenticato la password di MySQL/MariaDB e devi reimpostare la password di root in MySQL su Windows, questo articolo ti spiegherà come fare.

Passaggio 1: determinare la versione del sistema di gestione del database

Trova in quale cartella si trova il tuo file mysqld.exe . Questo file si trova nella cartella C:\server\mariadb\bin\ .

Apriamo un prompt dei comandi. Abbiamo bisogno dei diritti di amministratore, quindi facciamo quanto segue: clicchiamo su Win+x e selezioniamo Windows PowerShell (amministratore).

Ora vai alla directory con il file mysqld.exe sulla riga di comando, per questo, usa un comando del tipo:

1cdpath \to\folders

Ad esempio, se ho questo nella cartella C:\server\mariadb\bin\ , il comando è:

1cdC:\server\mariadb\bin\

È necessario determinare la versione di MySQL/MariaDB, per farlo, eseguire il comando:

1.\mysql.exe --version

C:\server\mariadb\bin\mysql.exe Ver 15.1 Distrib 10.5.8-MariaDB, per Win64 (AMD64), revisione sorgente 7da6353b1558adce73320c803f0413c9bbd81185

Passaggio 2: arrestare il server del database

Per cambiare la password di root, devi prima fermare il server del database. Per MySQL e MariaDB, puoi farlo con il comando:

1net stop mysql

Dopo aver arrestato il server, sarà necessario riavviarlo manualmente per reimpostare la password di root.

Passaggio 3: riavvio del server del database senza controllo delle autorizzazioni

Se avvii MySQL e MariaDB senza caricare le informazioni sui privilegi utente, potrai accedere alla riga di comando del database con privilegi di root senza immettere una password. Ciò ti consentirà di accedere al database senza conoscere la passphrase. Per fare ciò, devi impedire al database di caricare tabelle dei privilegi che contengono informazioni sui privilegi utente. Poiché ciò comporta un rischio per la sicurezza, dovresti anche evitare attività di rete per impedire ad altri client di connettersi.

Eseguire il DBMS senza caricare le tabelle dei privilegi e senza accesso alla rete:

1.\mysqld --skip-grant-tables --skip-networking --shared-memory

Il programma NON dovrebbe chiudersi, ovvero non dovrebbe essere possibile immettere nulla in questa finestra della riga di comando.

Passaggio 4: modifica la password di root

Ora puoi connetterti al database come utente root, al quale non verrà richiesta alcuna password.

Aprire una nuova finestra del prompt dei comandi, senza privilegi di amministratore.

Di nuovo, vai alla cartella desiderata

1cdC:\server\mariadb\bin\

E connettersi al server MySQL/MariaDB

1.\mysql.exe -u root

Vedrai immediatamente un prompt della shell del database. Prompt della riga di comando MySQL:

Benvenuti al monitor MariaDB. I comandi terminano con ; o \g.
Il tuo ID di connessione MariaDB è 54
Versione del server: 10.5.8-MariaDB distribuzione binaria mariadb.org

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab e altri.

Digitare ‘help;’ o ‘\h’ per la guida. Digitare ‘\c’ per cancellare l’istruzione di input corrente.

MariaDB [(nessuno)]>

Ora che hai accesso root, puoi cambiare la password di root.

Un modo semplice per cambiare la password di root per le versioni moderne di MySQL è usare la query ALTER USER . Tuttavia, questo comando non funzionerà al momento perché le tabelle dei privilegi non sono caricate. Diciamo al server del database di ricaricare le tabelle dei privilegi digitando:

1FLUSH PRIVILEGES;

Ora possiamo effettivamente cambiare la password di root.

Per MySQL 5.7.6 e versioni successive, e anche per MariaDB 10.1.20 e versioni successive, utilizzare il seguente comando:

1ALTERUSER'root'@'localhost'IDENTIFIED BY'new_password';

Per MySQL 5.7.5 e versioni precedenti, nonché per MariaDB 10.1.20 e versioni precedenti, utilizzare:

1SETPASSWORDFOR'root'@'localhost'= PASSWORD('new_password');

Ricordati di cambiare new_password con la tua nuova password.

Nota: se il comando ALTER USER non funziona, allora questo è solitamente il segno di un problema più serio. Tuttavia, invece di questo, puoi provare UPDATE … SET per reimpostare la password di root:

1UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root'AND Host = 'localhost';

Dopodiché, non dimenticare di ricaricare le tabelle dei privilegi:

1FLUSH PRIVILEGES;

In ogni caso, dovresti vedere la conferma che il comando è stato completato correttamente. Output:

1Query OK, 0 rows affected (0.02 sec)

Esci dalla sessione:

1exit;

La password è stata modificata, è possibile arrestare l’istanza avviata manualmente del server del database e riavviarla come prima.

Fase 5 – Riavvio regolare del server del database

Per iniziare, arresta l’istanza del server del database avviata manualmente nel passaggio 3. Per farlo, vai alla finestra con mysqld in esecuzione e premi Ctrl+c .

Quindi riavviare il servizio come al solito:

1net start mysql

Ora puoi confermare che la nuova password funziona, esegui:

1.\mysql.exe -u root -p