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:
| 1 | cdpath \to\folders |
Ad esempio, se ho questo nella cartella C:\server\mariadb\bin\ , il comando è:
| 1 | cdC:\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:
| 1 | net 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
| 1 | cdC:\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:
| 1 | FLUSH 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:
| 1 | ALTERUSER'root'@'localhost'IDENTIFIED BY'new_password'; |
Per MySQL 5.7.5 e versioni precedenti, nonché per MariaDB 10.1.20 e versioni precedenti, utilizzare:
| 1 | SETPASSWORDFOR'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:
| 1 | UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root'AND Host = 'localhost'; |
Dopodiché, non dimenticare di ricaricare le tabelle dei privilegi:
| 1 | FLUSH PRIVILEGES; |
In ogni caso, dovresti vedere la conferma che il comando è stato completato correttamente. Output:
| 1 | Query OK, 0 rows affected (0.02 sec) |
Esci dalla sessione:
| 1 | exit; |
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:
| 1 | net start mysql |
Ora puoi confermare che la nuova password funziona, esegui:
| 1 | .\mysql.exe -u root -p |