Se hai effettivamente impostato una password di root e l'hai appena persa/dimenticata:
- Arrestare MySQL
-
Riavvia manualmente con l'opzione skip-grant-tables:
mysqld_safe --skip-grant-tables
-
Ora apri una nuova finestra di terminale ed esegui il client MySQL:
mysql -u root
-
Reimposta manualmente la password di root con questo comando MySQL:
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Se stai usando MySQL 5.7 (controlla usando mysql --version nel Terminale) allora il comando è:UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
-
Svuota i privilegi con questo comando MySQL:
FLUSH PRIVILEGES;
Da http://www.tech-faq.com/reset-mysql-password.shtml
(Forse questo non è ciò di cui hai bisogno, Abs, ma immagino che potrebbe essere utile per le persone che si imbatteranno in questa domanda in futuro)
Prova a connetterti senza alcuna password:
mysql -u root
Credo che l'impostazione predefinita iniziale sia nessuna password per l'account root (che dovrebbe ovviamente essere cambiata il prima possibile).
usa questo comando per controllare il possibile output
mysql> select user,host,password from mysql.user;
uscita
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
- In questo utente l'amministratore non sarà autorizzato ad accedere da un altro host sebbene tu abbia concesso l'autorizzazione. il motivo è che l'utente admin non è identificato da alcuna password.
-
Concedi all'utente admin la password utilizzando nuovamente il comando GRANT
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
quindi controlla la GRANT LIST l'output sarà come il suo
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
se è necessario consentire l'accesso all'utente desiderato, ad esempio l'utente 'admin', utilizzare una volta il comando GRANT ed eseguire il comando.
Ora l'utente dovrebbe essere autorizzato ad accedere.