mysqlパスワードエラーを解決します.my.iniにskip-grant-tablesを追加しても役に立たない

1493 ワード

1、データベースの停止
net stop mysql

2、mysqlのbinディレクトリの下で、cmdウィンドウを開き、以下のコマンドを実行します:以下のパスはProgramDataの下でMySQLの中でmyです.iniファイルのパス(my.iniファイルに直接ship-grant-tablesを追加するのと変わらないような気がしますが、my.iniファイルで何度も試したことがありますが、一度も役に立たず、本当に絶望しています)
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables

3、任意に2番目のcmdを開き、mysqlを接続する
mysql -uroot -p

パスワードを入力する必要がある場合は、直接車に戻って、入ることができます
4、mysqlに接続してから、コマンドを実行する
show databases;

5、次のコマンドを引き続き使用する
use mysql;

6、コマンドを使用してrootパスワードを変更する(2つの場合)
  • バージョン5.7以前のmysqlで、この文(ここの新しいパスワードはあなたが設定する新しいパスワード)
  • を実行します.
    UPDATE user SET Password=PASSWORD('   ') where USER='root';update mysql.user set password=PASSWORD("root") where User="root";
  • バージョン5.7以降の実行この文
  • UPDATE user SET authentication_string=PASSWORD('   ') where USER='root';update mysql.user set authentication_string=PASSWORD("root") where User="root";
    

    理由は、mysqlのパスワードのフィールド名がpasswordからauthentication_に変更されたためです.string
    For Mysql before 5.7 it is "password"
    Since MySQL 5.7 it is "authentication_string"
    7、権限の更新
    FLUSH PRIVILEGES;

    8、データベースを終了する
    quit

    9、データベースに再ログインし、パスワードを入力すればいい
    mysql -uroot -p