MySQL8.0 「ERROR 1820」の解決: 初期パスワード変更

Web開発
この記事は約3分で読めます。

こんにちは、@Manabu です。

MySQLを初めてセットアップしようとした時に、なぜか何もできない時があります。

Manabu
Manabu

DBもユーザーも作成できない…。

初めての場合、どのように対応すればいいかわかりませんよね。

この記事では、初期セットアップ時に発生するエラーの内容と対応方法について紹介します。

以下のような方におすすめです。

・MySQLで初期セットアップを行いたいが何もできない
ERROR 1820のエラー内容を知りたい
ぜひ参考にしてください!

発生しているエラー

初期セットアップでは、以下のようなエラーが発生することがあります。

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について、内容と対応方法を紹介しました。

初期状態のパスワードは、セキュリティ的にも推奨されておらず、より強力なパスワードを設定することをお勧めします。