環境: Alma Linux 8.2
(CentOS
の代替派生)、MySQL 5.7.x
パスワードを変更すると、エラーが報告されます。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
この問題の主な理由は、MySQL
デフォルトのパスワード ポリシーがあることです。
- 少なくとも 1 ケースが含まれます
- 少なくとも 1 桁の数字が含まれています
- 特別なシンボルが 1 つ含まれています
- 8桁以上である必要があります
それほど複雑なパスワードを設定したくない場合は、デフォルトのパスワード ポリシーを変更する必要があります。
ではMySQL 5.7
、パスワード ポリシー パラメータを変更することでデータベースのセキュリティを強化できます。次に、MySQL 5.7
でパスワード ポリシーを変更する手順を示します。
[注意]MySQL 8.0
のパスワード ポリシーを変更するには、次のページに移動してください: MySQL 8.0 変更パスワード エラーを解決する: パスワードが現在のポリシー要件を満たしていません。
1. MySQL サーバーに接続します。
mysql -u root -p
root
ユーザーのパスワードを入力してログインします。
2. 現在のパスワード ポリシーを表示します。
SHOW VARIABLES LIKE 'validate_password%';
3. 必要に応じて次の変数を変更します。
-
validate_password_policy
: パスワード ポリシー、デフォルト値は ですMEDIUM
。LOW
、MEDIUM
、またはカスタムに設定できますSTRONG
。たとえば、LOW
パスワードの複雑さの要件を軽減するように設定します。SET GLOBAL validate_password_policy = LOW;
さまざまな戦略の要件:
0/LOW
: 長さのみを確認します;
1/MEDIUM
: 長さ、数値、大文字と小文字、特殊文字、デフォルト値を確認します。
2/STRONG
: 長さ、数値、大文字と小文字、特殊文字、辞書ファイルを検証します。 -
validate_password_length
: パスワードの最小長。デフォルト値は です8
。必要に応じてパスワードの最小長を変更します。SET GLOBAL validate_password_length = 6;
-
validate_password_number_count
: パスワードに必要な数字。デフォルトは です1
。必要な数は増減できます。SET GLOBAL validate_password_number_count = 1;
-
validate_password_special_char_count
: パスワード内の特殊文字の要件。デフォルトは です1
。特殊文字の要件は増減できます。
SET GLOBAL validate_password_special_char_count = 1;
validate_password_mixed_case_count
: パスワードの大文字と小文字の要件。デフォルト値は です1
。大文字と小文字の要件は増減できます。SET GLOBAL validate_password_mixed_case_count = 1;
4. 設定ファイルを変更して、変更したパスワード ポリシーを永続的なものにします。構成ファイル (通常は または)
を開き、次の内容をファイルに追加します。MySQL
my.cnf
my.ini
validate_password_policy=LOW
validate_password_length=6
validate_password_number_count=1
validate_password_special_char_count=1
validate_password_mixed_case_count=1
5. MySQL サービスを再起動して、変更を適用します。
sudo systemctl restart mysql
上記の手順を完了すると、MySQL 5.7
のパスワード ポリシーが変更されました。必要に応じてパスワード ポリシーのパラメータを調整し、データベースのセキュリティを向上させるために適切なパスワード ポリシーが設定されていることを確認できます。