お気づきかもしれませんが、VALIDATE PASSWORD
を有効にするように求められます MySQLルートのパスワードの設定中のコンポーネント ユーザー。有効にすると、パスワードの検証コンポーネントは、指定されたパスワードの強度を自動的にチェックし、十分に安全なパスワードのみを設定するようにユーザーに強制します。弱いパスワードを入力すると、次のようなエラーが発生します- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
。
技術的に言えば、それは実際にはエラーではありません。これは、現在のパスワードポリシー要件に基づいて強力なパスワードのみを提供するようにユーザーに通知する組み込みのセキュリティメカニズムです。
例を示しましょう。 root
としてMySQLサーバーにログインします コマンドを使用するユーザー:
$ mysql -u root -p
弱いパスワードでデータベースユーザーを作成します:
mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';
そして、次のエラーが発生します:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
見る? Validate Password
コンポーネントでは、弱いパスワード(mypassword
など)を使用してユーザーを作成できません この場合)。
パスワードが現在のパスワードポリシーの要件を満たすか、Validate Password
を無効にするまで、このエラーが発生し続けます。 成分。次のセクションでその方法を説明します。
修正-MySQLエラー1819(HY000):パスワードが現在のポリシー要件を満たしていません
Validate Password
時に適用されるパスワード検証ポリシーには3つのレベルがあります プラグインが有効になっています:
- 低 長さ>=8文字。
- 中 長さ>=8、数字、大文字と小文字の混合、および特殊文字。
- 強い 長さ>=8、数字、大文字と小文字、特殊文字、辞書ファイル。
これらのポリシーレベルに基づいて、適切なパスワードを設定する必要があります。たとえば、パスワード検証ポリシーが[中]に設定されている場合は、数字、小文字、大文字、特殊文字を含む8文字以上のパスワードを設定する必要があります。
まず、現在のパスワードポリシーレベルを見つける必要があります。これを行うには、次のコマンドを実行して、パスワード検証プラグインのシステム変数を表示します。
mysql> SHOW VARIABLES LIKE 'validate_password%';
出力例:
+--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.09 sec)
ご覧のとおり、現在適用されているパスワードレベルは中です。 。したがって、パスワードは8文字で、数字、大文字と小文字、特殊文字を組み合わせたものにする必要があります。
このパスワードを設定します-Password123#@!
コマンドの使用:
mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!'; Query OK, 0 rows affected (0.36 sec)
見る?今は動作します!したがって、「ERROR 1819 (HY000)...
」を修正するために 「エラー、現在のパスワード検証ポリシーに従ってパスワードを入力する必要があります。
MySQLのパスワード検証ポリシーを変更する
「ERROR 1819 (HY000)...
」を解決することもできます 「低レベルのパスワードポリシーを設定することによって。
これを行うには、mysqlプロンプトから次のコマンドを実行します。
mysql> SET GLOBAL validate_password.policy = 0;
または、
mysql> SET GLOBAL validate_password.policy=LOW;
次に、パスワード検証ポリシーが低に変更されているかどうかを確認します。
mysql> SHOW VARIABLES LIKE 'validate_password%';
出力例:
+--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | LOW | | validate_password.special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.00 sec)
これで、次のような弱いパスワードでユーザーを作成できます。
mysql> create user 'senthil'@'localhost' identified by 'password';
MEDIUMレベルのポリシーに戻すには、mysqlプロンプトから次のコマンドを実行するだけです。
mysql> SET GLOBAL validate_password.policy=MEDIUM;
パスワードポリシーが変更されない場合は、mysqlプロンプトを終了し、ターミナルウィンドウからmysqlサービスを再起動します。
$ sudo systemctl restart mysql
これで動作するはずです。
ヘッズアップ: 読者の1人が、次のコマンドにタイプミスがあると指摘しました。
mysql> SET GLOBAL validate_password.policy=LOW;
次のようになります:
mysql> SET GLOBAL validate_password_policy=LOW;
上記のコマンドのアンダースコアに注意してください。セットアップを削除したため、このコマンドを確認する方法がありません。ただし、MySQLの新しいバージョンではコマンドが変更されていると思います。
パスワード検証ポリシーを無効にする
弱いパスワードでユーザーを作成したい場合は、Validate Password
を無効にするだけです。 コンポーネント全体を作成し、ユーザーを作成した後で再度有効にします。
MySQLサーバーにログインします:
$ mysql -u root -p
パスワードの検証コンポーネントを一時的に無効にするには、MySQLプロンプトから次のコマンドを実行します。
mysql> UNINSTALL COMPONENT "file://component_validate_password";
任意のパスワードでユーザーを作成します:
mysql> create user 'kumar'@'localhost' identified by '123456';
最後に、パスワードの検証コンポーネントを有効にします。
mysql> INSTALL COMPONENT "file://component_validate_password";
個人的には、ポリシーを低レベルに変更したり、パスワードポリシーを無効にしたりすることはお勧めしません。データベースユーザーであろうと通常のユーザーであろうと、数字、大文字と小文字の混合、および空間文字を含む8文字を超える強力なパスワードを常に使用してください。
結論
このガイドでは、一般的なMySQLエラーの1つであるERROR 1819 (HY000): Your password does not satisfy the current policy requirements
について学習しました。 Linuxで修正する方法。また、パスワードポリシーを無効にして、弱いパスワードを許可する方法も学びました。
関連記事:
- Ubuntu 20.04 LTSにApache、MySQL、PHP(LAMPスタック)をインストールします
- Ubuntu 20.04 LTSにNginx、MySQL、PHP(LEMPスタック)をインストールします