今日、mysql を普通に開いたときに、突然プロンプトが表示されました: ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)
インターネットで多くの記事を検索し、解決策を試しましたが、どれも効果がなかったため、最終的に複数の方法の要点を組み合わせて完璧な解決策を見つけようとしました。
最初のステップ: まず Mysql サービスを停止します。このステップは非常に重要です。
ステップ 2: Mysql インストール パスで my.ini ファイルを見つけ、右クリックして編集し、mysqld の下に入力してパスワード検出をスキップします。
スキップ許可テーブル
ファイルを保存して終了します。忘れずに保存してください。
ステップ 3: cmd を管理者として実行します。これは一般にブラック ウィンドウとも呼ばれます。管理者として実行する必要がある
ステップ 4: cmd でコマンドライン mysqld --console --skip-grant-tables --shared-memory を入力します。
ステップ 5: 管理者として cmd を再度実行します。2番目の黒い窓。MySQLに入るにはmysqlを直接入力してください
ステップ 6: コマンドを実行します: update user setauthentication_string ='' where user = 'root'; パスワードをクリアします。MySql8+ は以前のバージョンとは少し異なるため、ユーザー テーブルにはパスワード フィールドがありませんが、authentication_string があります。
ステップ 7: コマンド「flushprivilege;」を入力して、変更を有効にします。終了 mysql を終了します。
ステップ 8: 両方の黒いウィンドウを閉じ、2 つの黒いウィンドウを再実行します。ステップ 3 ~ 5 をもう一度繰り返します。
ステップ 9: mysql ウィンドウでコマンドを使用します: ALTER user 'root'@'localhost' IDENTIFIED BY '123'; パスワードを 123 に設定します。
最後に、my.ini ファイル内の Skip-grant-tables を # でコメントアウトし、mysql サービスを再起動するだけで入力できます。