はじめに
MySQLで新しいユーザーを作成しようとした際、思わぬエラーが発生することがあります。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
特に開発環境構築時に CREATE USER
コマンドでエラー1819が出た経験があり、毎回調べ直すのを避けるために、ここに対応方法を備忘録としてまとめておきます。
書こうと思ったきっかけ
Docker上のMySQLにFlaskアプリ用ユーザーを作成しようとしたところ、パスワードが簡単すぎると判定され、ユーザー作成に失敗しました。これは validate_password
プラグインの影響によるもので、初見だと戸惑うポイントでした。
エラーの内容
mysql> CREATE USER 'flaskuser'@'%' IDENTIFIED BY 'flaskpass';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
このエラーは、指定したパスワードがMySQLのセキュリティポリシーに違反していることを意味します。
解決方法
方法1:強いパスワードを使う(推奨)
MySQLが求めるパスワード要件の一例:
- 8文字以上
- 英大文字・小文字・数字・記号をすべて含む
CREATE USER 'flaskuser'@'%' IDENTIFIED BY 'Flask@123!';
方法2:パスワードポリシーを一時的に緩める(開発環境用)
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;
その後、以下を再実行:
CREATE USER 'flaskuser'@'%' IDENTIFIED BY 'flaskpass';
※ 上記の設定はセッションごとの一時設定です。
方法3:ポリシーを永続的に変更する(非推奨/開発専用)
/etc/my.cnf
や /etc/mysql/mysql.conf.d/mysqld.cnf
に以下を追記:
[mysqld]
validate-password-policy=LOW
validate-password-length=6
設定変更後は MySQL を再起動してください。
まとめ
ERROR 1819
は、MySQLのセキュリティ機能が有効に働いている証拠です。
運用環境では強いパスワードを使用することが推奨されますが、開発用環境では一時的にポリシーを緩めて作業効率を上げることも選択肢の一つです。
ポリシー緩和は計画的に使いこなしていきましょう!