Si vous avez effectivement défini un mot de passe root et que vous venez de le perdre/oublier :
- Arrêter MySQL
-
Redémarrez-le manuellement avec l'option skip-grant-tables :
mysqld_safe --skip-grant-tables
-
Maintenant, ouvrez une nouvelle fenêtre de terminal et lancez le client MySQL :
mysql -u root
-
Réinitialisez manuellement le mot de passe root avec cette commande MySQL :
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Si vous utilisez MySQL 5.7 (vérifiez en utilisant mysql --version dans le Terminal) alors la commande est :UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
-
Videz les privilèges avec cette commande MySQL :
FLUSH PRIVILEGES;
Depuis http://www.tech-faq.com/reset-mysql-password.shtml
(Peut-être que ce n'est pas ce dont vous avez besoin, Abs, mais je pense que cela pourrait être utile pour les personnes qui tomberont sur cette question à l'avenir)
Essayez de vous connecter sans mot de passe :
mysql -u root
Je crois que la valeur par défaut initiale est pas de mot de passe pour le compte root (qui devrait évidemment être changé dès que possible).
utilisez cette commande pour vérifier la sortie possible
mysql> select user,host,password from mysql.user;
sortie
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)
- Dans cet utilisateur, l'administrateur ne sera pas autorisé à se connecter à partir d'un autre hôte bien que vous ayez accordé l'autorisation. la raison en est que l'utilisateur admin n'est identifié par aucun mot de passe.
-
Accordez à nouveau un mot de passe à l'utilisateur admin en utilisant la commande GRANT
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
puis vérifiez la GRANT LIST la sortie sera comme la sienne
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)
si l'utilisateur souhaité, par exemple l'utilisateur 'admin' doit être autorisé à se connecter, utilisez une fois la commande GRANT et exécutez la commande.
L'utilisateur devrait maintenant être autorisé à se connecter.