1, authentication_string
これは Mysql8.0 によって行われた新しい変更であり、古いバージョンでは、password() 関数が使用されていました。
2. インターネット上にある「mysql パスワードを忘れた場合」に対する解決策のほとんどは、UPDATE user SET authentication_string="12345" WHERE user="root";
を使用して直接パスワードを変更する 12345に変更するのは実は間違った使い方で、authentication_stringには暗号文が格納されているため、これをそのまま「12345」などの平文に変更するとパスワードが間違ってログインできなくなります。
その理由は、サーバーが本人確認を行う際、まずユーザーが入力した平文を暗号文に変換し、データベース内の暗号文と比較して一致するかどうかを検証するためです。暗号文が配置されるべき場所に平文が直接配置されるため、それらが正常に一致することはありません。
3. 同様のオンライン検索結果「mysql パスワード変更」では、「12345」で識別される alter user root@localhost が変更に使用されます。それ。パスワード、このコマンドは「認可テーブルをスキップする」ときは使用できません。通常モードでのみ使用できます。
4 にそのような解決策があります。最初に変更します。空の値の平文と暗号文はすべて空の値です。空のパスワードを使用して mysql 通常モードに入り、alter を使用してパスワードを変更します。
1、mysql サービスを停止します
net stop mysql
2、次のように入力します。コマンドを実行して、「承認テーブルをスキップ」モードに入ります
mysqld --console --skip-grant-tables --shared-memory
3. 前の cmd ウィンドウを脇に置き、別の管理者の cmd ウィンドウを開き、mysql## と入力します。 #mysql サービスに入ります
use mysql と入力して mysql データベースに入り、authentication_string を empty
USE mysql; UPDATE user SET authentication_string="" WHERE user="root";
5、権限を更新し、終了します
FLUSH privileges; exit;
ctrl c を使用して終了します。認可テーブル」モードをスキップし、mysql サービス
net start mysql
mysql -uroot -p
alter user root@localhost identified by '12345' FLUSH privileges; exit
以上がMySQL8.0/8.xでパスワードを忘れた場合にrootパスワードを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。