Modifiez l'utilisateur root pour pouvoir se connecter lorsqu'il n'est pas local
mysql> use mysql; Database changed mysql> select host,user from user; +-----------+------+ | host | user | +-----------+------+ | 127.0.0.1 | root | | ::1 | root | | localhost | root | +-----------+------+ 3 rows in set (0.00 sec) mysql> update user set host='%' where user='root'; ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit; Bye
Après avoir effectué les étapes ci-dessus, j'ai rencontré un problème :
Lorsque je suis localmysql -uroot回车
, je peux me connecter directement après avoir appuyé sur Entrée
Mais je ne parviens pas à me connecter via un mot de passe :
C:\wamp\mysql\bin>mysql -uroot -p Enter password: ********* ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) C:\wamp\mysql\bin>
Pourquoi est-ce ?
localhost n'est pas dans %
mysql -uroot -h127.0.0.1 -p
et
mysql -uroot -p
équivalent à une connexion avec 2 utilisateurs
mettre à jour l'utilisateur set host='%' où user='root';
.Et si vous le modifiez comme ceci, cela équivaut à modifier les trois enregistrements ci-dessus, donc le système vous demande « ERREUR 1062 (23000) : Entrée en double » %-root' ' pour la clé 'PRIMARY' est erroné car les champs Hôte et Utilisateur sont des clés primaires composites et ne sont pas uniques
Donc, l’exécution de cette déclaration par LZ est en réalité un échec. Il n’est donc pas nécessaire de s’éloigner de cette étape.