J'ai réinstallé l'ordinateur et installé la dernière version de la base de données MySQL. En conséquence, Navicat a signalé une erreur 1251 lors de la connexion à Mysql, et SQL a signalé une erreur 2058. Cependant, la fenêtre. La commande est entrée dans MySQL, et le compte et le mot de passe étaient corrects.
Recommandations associées : "Tutoriel graphique Navicat pour mysql"
J'ai vérifié en ligne que la raison en était mysql8 Dans les versions précédentes , la règle de chiffrement était mysql_native_password, mais après mysql8, la règle de chiffrement était caching_sha2_password.
Il existe deux façons de résoudre le problème, l'une consiste à mettre à niveau le pilote Navicat ; l'autre consiste à restaurer la règle de cryptage du mot de passe de connexion de l'utilisateur MySQL sur mysql_native_password.
J'utilise généralement la deuxième méthode :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新一下用户的密码 FLUSH PRIVILEGES; #刷新权限
Je vois beaucoup de gens copier directement avec la commande, ce qui est faux.
·'root' est le nom d'utilisateur que vous avez défini pour vous-même
·'localhost' fait référence to Il s'agit de l'adresse IP ouverte par l'utilisateur. Il peut s'agir de 'localhost' (accès local uniquement, équivalent à 127.0.0.1), il peut s'agir d'un '*.*.*.*' spécifique (une IP spécifique), ou de peut être '%' (Toutes les adresses IP sont accessibles)
·'mot de passe' est le mot de passe utilisateur que vous souhaitez utiliser
De cette façon, le problème est résolu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!