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 sqlyog 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.
Ce que j'ai vérifié en ligne, c'est que la raison en est que la règle de cryptage dans les versions antérieures à mysql8 est mysql_native_password, et après mysql8, la règle de cryptage est 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.
Recommandations associées : "Tutoriel graphique Navicat pour mysql"
J'utilise souvent 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 monde C'est mal de copier directement avec la commande.
'root' Le nom d'utilisateur défini pour vous-même
'localhost' fait référence à l'IP ouverte à l'utilisateur, qui peut être 'localhost' (uniquement accès local, équivalent à 127.0.0.1) , peut être un '*.*.*.*' spécifique (une IP spécifique) ou '%' (toutes les 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!