MySQL 5.7 インストール後に root パスワードを変更する方法

MySQL 5.7 インストール後に root パスワードを変更する方法

MySQL 5.7 をインストールした後に、少々はまったので備忘録として。

MySQL の初期パスワードの確認

MySQL 5.7 をインストールすると、インストール時にランダムな文字列が、root ユーザの初期パスワード(temporary password)として自動的に設定されます。

この初期パスワードを確認するには、MySQL のエラーログを確認する必要があります。

例えば、ログの場所が、/var/log/mysqld.log の場合は、以下にように検索できます。

$ cat /var/log/mysqld.log | grep 'temporary password'
[Note] A temporary password is generated for root@localhost: [初期パスワード]

ちなみに、初期パスワードが分からなくなった場合は、セーフモードで MySQL Server を起動して root のパスワードを再設定する手段もあります。(参考: 「MySQL 5.7 で root ユーザのパスワードを再設定 – Qiita」参照)

mysql_secure_installation による初期設定

mysql_secure_installation コマンドにより、root ユーザのパスワードを初期パスワードから変更することができます。

$ mysql_secure_installation

mysql_secure_installation により設定される内容は以下となります。

  1. root ユーザのパスワード変更
  2. anonymous ユーザの削除
  3. リモートからの root ユーザでのログインの禁止
  4. test データベースの削除

パスワードチェックポリシーの無効化

my.cnf に validate-password = OFF を追記することで、パスワードのポリシーチェックを無効にすることができます。

デフォルトでは、パスワードポリシーが厳しすぎるため、少々扱いにくいです。(セキュリティ的には、正しいのですが)

また、MySQL 5.7 からユーザーのパスワードの有効期限がデフォルトで360日になったため、default_password_lifetime = 0 として、パスワードの有効期限を無効にしておきます。

[mysqld]
...
default_password_lifetime = 0
validate-password = OFF

参考