こんにちは、@Manabu です。
MySQLを初めてセットアップしようとした時に、なぜか何もできない時があります。
Manabu
DBもユーザーも作成できない…。
初めての場合、どのように対応すればいいかわかりませんよね。
この記事では、初期セットアップ時に発生するエラーの内容と対応方法について紹介します。
以下のような方におすすめです。
ぜひ参考にしてください!
発生しているエラー
初期セットアップでは、以下のようなエラーが発生することがあります。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
このエラーは、MySQLのセキュリティポリシーに基づき、初期パスワードの変更が必要であることを示しています。
初期パスワードは、有効期限が切れた状態で作成されるため、必ず変更する必要があるようです。
対応方法
こちらのエラーが発生するということは、rootユーザーで初期パスワードを使用してMySQLサーバーにログインまではできている想定です。
できていない場合は、以下のコマンドを実行して初期パスワードを確認し、ログインまで行ってください。
// 初期パスワードの確認
sudo grep 'temporary password' /var/log/mysqld.log
//以下のように表示されます。「your_temporary_password」の部分が初期パスワードです。
2024-06-24T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: your_temporary_password
// 初期パスワードを使用してMySQLにログイン
sudo mysql -u root -p
こちらでログインまではできたと思います。
ログイン後は、以下のようなコマンドを実行することで、rootユーザーのパスワードを変更することができます。
// new_passwordが新規パスワードになるため、変更してください。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
パスワードは、MySQLのパスワードポリシーの条件にしたがって決める必要があります。
初期状態では、以下の条件にしたがってパスワードを決めるようにしてください。
- 最小8文字以上
- 小文字、大文字、数字、特殊文字がそれぞれ1文字以上含まれる
- ユーザー名が含まれていない
パスワードポリシーの詳細については、以下の記事を参考にしてください。
MySQL8でパスワード変更時にエラー発生!「ERROR 1819」パスワードポリシー違反の詳細
まとめ
MySQLの初期セットアップで発生する、Error 1820について、内容と対応方法を紹介しました。
初期状態のパスワードは、セキュリティ的にも推奨されておらず、より強力なパスワードを設定することをお勧めします。