mysqlのパスワードは、ユーザー権限テーブルのauthentication_stringフィールドに配置されます。ユーザー テーブルは、MySQL で最も重要な権限テーブルです。サーバーへの接続が許可されているアカウント情報を記録するために使用されます。ユーザー パスワードを変更すると、実際にはユーザー テーブルの authentication_string フィールドの値が変更されます。構文は「SET PASSWORD FOR 'username'@' hostname'=PASSWORD ('新しいパスワード')」です。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql のパスワードは、ユーザー権限テーブルの [authentication_string] フィールドに配置されます。
MySQL ユーザー権限テーブルの User 列
MySQL はインストール中に mysql という名前のデータベースを自動的に作成します。mysql データベースは次の場所に保存されます。ユーザー権限テーブル。ユーザーがログインすると、MySQL はこれらの権限テーブルの内容に基づいて、対応する権限を各ユーザーに付与します。
ユーザー テーブルは MySQL で最も重要な権限テーブルであり、サーバーへの接続を許可されたアカウント情報を記録するために使用されます。ユーザー テーブルで有効になっているすべての権限はグローバルであり、すべてのデータベースに適用されることに注意してください。
#ユーザー テーブルのフィールドは、ユーザー列、権限列、セキュリティ列、リソース制御列の 4 つのカテゴリに大別できます。
ユーザー列には、ユーザーが MySQL データベースに接続するときに入力する必要がある情報が保存されます。
MySQL 5.7 バージョンでは、パスワード フィールドとして Password が使用されなくなり、authentication_string に変更されたことに注意してください。
MySQL ユーザー列を表 1 に示します。
フィールド名 | フィールド タイプ | 空ですか | デフォルト値 | 説明 |
---|---|---|---|---|
ホスト | char(60) | NO | なし | #ホスト名|
char(32) | NO | なし | ユーザー名 | |
テキスト | YES | なし | パスワード |
したがって、これらの 3 つのフィールドによって、ユーザーがログインできるかどうかが決まります。
SET ステートメントを使用して一般ユーザーのパスワードを変更するMySQL では、root ユーザーのみが、 MySQLデータベース。 root ユーザーとして MySQL サーバーにログインした後、SET ステートメントを使用して通常のユーザーのパスワードを変更できます。構文形式は次のとおりです。
SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');
このうち、username パラメータは一般ユーザのユーザ名、hostname パラメータは一般ユーザのホスト名、newpwd は変更する新しいパスワードです。 。
注: 新しいパスワードは、PASSWORD() 関数を使用して暗号化する必要があります。PASSWORD() を使用して暗号化されていない場合、パスワードは正常に実行されますが、ユーザーはログインできません。
一般ユーザーがパスワードを変更する場合は、FOR 句を省略して自分のパスワードを変更できます。構文形式は次のとおりです:
SET PASSWORD = PASSWORD('newpwd');
まず、パスワードなしで testuser ユーザーを作成します。SQL ステートメントと実行結果は次のとおりです:
mysql> CREATE USER 'testuser'@'localhost'; Query OK, 0 rows affected (0.14 sec)
root ユーザー MySQL サーバーにログインした後、SET ステートメントを使用して testuser ユーザーのパスワードを「newpwd」に変更します。SQL ステートメントと実行結果は次のとおりです。実行結果から、SET ステートメントが正常に実行され、testuser ユーザーのパスワードが「newpwd」に正常に設定されたことがわかります。
次の例では、testuser ユーザーのパスワードが正常に変更されたかどうかを確認します。 MySQL サーバーを終了し、testuser ユーザーとしてログインし、パスワード「newpwd」を入力します。SQL ステートメントと実行結果は次のとおりです:
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd"); Query OK, 0 rows affected, 1 warning (0.01 sec)
実行結果から、testuser ユーザーがログに記録したことがわかります。正常に入力され、パスワードが正常に変更されました。
例 2testuser ユーザーを使用して MySQL サーバーにログインし、SET ステートメントを使用してパスワードを「newpwd1」に変更します。 [関連する推奨事項: ] 以上がmysqlのパスワードはどこにありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。C:\Users\leovo>mysql -utestuser -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.