mysqlユーザーパスワードをリセット

3895 ワード

またデータベースrootのパスワードを忘れたので、記録しましょう.
rootパスワードをリセットrootパスワードを忘れた場合、mysqlのセキュリティモードに入り、rootパスワードをリセットできます.
1.MySQLサービスの停止
コマンドプロンプトウィンドウを開き、net stop mysqlを入力してMySQLサービスを閉じます.
C:\Users\Administrator>net stop mysql57
MySQL57       ..
MySQL57        。

もちろん、コンピュータ管理パネルでMySQLサービスをオフにすることもできます.
2.binディレクトリへの切り替え
コマンドプロンプトウィンドウでcdコマンドでmysqlインストールディレクトリの下のbinディレクトリに切り替えます.
C:\Users\Administrator>
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin>

↑デフォルトインストールディレクトリはC:Program FilesMySQLMySQL Server
3.安全モードに入る
binディレクトリにmysqld --skip-grant-tables と入力し、権限チェックをスキップしてmysqlを起動します.
もしあなたがmyを構成したら.iniファイルは、mysqld --defaults-file="../my.ini" --skip-grant-tablesに導入する必要があります.
[mysqld]

basedir = "C:\ProgramData\MySQL\MySQL Server 5.7"
datadir = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"

↑私はmyにいます.iniファイルにはデータの格納パスが指定されており、プロファイルを導入しないとNo such file or directoryエラーが表示されます.
4.アカウントパスワードのリセット
別のコマンド・プロンプト・ウィンドウ(セキュリティ・モード・ウィンドウを閉じないでください)を開き、mysqlbinディレクトリに切り替え、mysqlが権限をスキップして接続データベースを検証するように入力します.
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

↑接続パラメータmysql-u-p-h-P-Dも指定できます
update mysqlを実行します.user set authentication_string=""where user="root"; rootユーザーのパスワードをリセットします(5.7以前はpasswordフィールド).
mysql> update mysql.user set authentication_string="" where user="root";
Query OK, 1 row affected (0.00 sec)

mysql> select user,authentication_string from mysql.user\G
*************************** 1. row ***************************
         user: root
authentication_string:
*************************** 2. row ***************************
         user: mysql.sys
authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

2 rows in set (0.00 sec)

↑rootユーザーのauthentication_stringフィールドが空になりました
5.権限テーブルのリフレッシュ
flush privilegesを実行します.コマンドは権限テーブルをリフレッシュし、パスワードのリセットが完了したらquitを入力して終了します.
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> quit
Bye

すべてのコマンドプロンプトウィンドウを閉じ、タスクマネージャでmysqldを終了します.exeプロセス.MySQLサービスを再起動すれば、rootアカウントに直接ログインできます.
rootパスワードの変更
安全上、rootパスワードは空ではないので、パスワードをリセットした後、パスワードを再設定する必要があります.
方法一:SET PASSWORDSET PASSWORD FOR "username"=PASSWORD("new password");
rootとしてmysqlにログインし、set passwordコマンドを使用してパスワードを変更します.
mysql> set password for root@localhost = password("pswd");
Query OK, 0 rows affected, 1 warning (0.00 sec)

方法2:mysqladminmysqladmin -u "username" -p password "new password"
このネーミングを実行すると、元のパスワードを入力するよう求められ、正しく入力すると変更できます.
C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqladmin -u root -p password pswd
Enter password: ****

mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

方法3:UPDATE TABLEUPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";
rootパスワードをリセットしながら、デフォルトのパスワードを設定することもできます.ただし、パスワードは明文ではなくpassword()関数で暗号化する必要があります.
mysql> update mysql.user set authentication_string=password("pswd") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)