コンピューターを再インストールし、最新バージョンの MySQL データベースをインストールしました。その結果、Mysql への接続時に Navicat は 1251 エラーを報告し、sqlyog は 2058 エラーを報告しました。 window コマンドで mysql が入力され、アカウントとパスワードは正しかったです。
オンラインで確認したところ、この理由は、mysql8 より前のバージョンの暗号化ルールは mysql_native_password でしたが、mysql8 以降の暗号化ルールは caching_sha2_password であるためです。
この問題を解決するには 2 つの方法があります。1 つは navicat ドライバーをアップグレードすること、もう 1 つは mysql ユーザーのログイン パスワード暗号化ルールを mysql_native_password に復元することです。
関連する推奨事項: 「Navicat for mysql グラフィック チュートリアル 」
私は 2 番目の方法をよく使用します:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新一下用户的密码 FLUSH PRIVILEGES; #刷新权限
多くの人がそうするのは間違っていると思いますコマンドで直接コピーします。
'root' 自分用に定義されたユーザー名
'localhost' はユーザーに公開されている IP を指し、「localhost」にすることができます (ローカル アクセスのみ、127.0.0.1 に相当) 、特定の '*.*.*.*' (特定の IP) または '%' (すべての IP にアクセス可能) にすることができます。
'password' は必要なユーザー パスワードです。
を使用すると、問題は解決されます。
以上がmysql と navicat 間の接続を確立する際の 1251 エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。