LoginSignup
52
62

More than 3 years have passed since last update.

MySQLの初期パスワードのありか

Last updated at Posted at 2019-05-05

MySQL5.7以降では初期パスワードが自動で生成される様になっており、以前のようにパスワードなしでMySQLに接続することができません。
初期パスワードのありかを解明するのに変に時間を使ってしまったので共有しておきます。

確認した環境(MySQLがインストールされているサーバー)

  • CentOS7
  • Apache 2.4
  • MySQL 5.7

初期パスワードはログから探す

MySQLの初期パスワードは初回起動時に自動的に生成されます。
しかし、サーバーの中を探しても「これがMySQLのパスワードですよ」というようなあからさまなファイルは存在していません。

では、どこにあるのか?

じつは、MySQLのログに残っています。

MySQLを実行するmysqldというプログラムはlogを残すようになっており、そのlogの中に初期パスワードも混ざっています。

mysqldのログファイルの場所

/var/log/mysqld.log

このファイルをviコマンドやlessコマンドで確認すると以下の様なログがあるはずです。

[Note] A temporary password is generated for root@localhost: EaGapdplN0*m

上記の場合、':'以降の「EaGapdplN0*m」というランダムな文字列が初期パスワードです。

このパスワードを使ってMySQLにrootユーザーとしてログインすることができます!

余談ですが、ログは1行だけでなくたくさん出力されるので、「temporary paswword」などで検索するとすぐに見つかります。

初期パスワードはすぐに変更しておく

無事に初期パスワードでログインできたらパスワードを変更しておきましょう。
変更しないでおくと毎回「ヴァーダブダブ...」などと言いながら初期パスワードを探さなくてはいけません笑

mysqlにログインしたら、以下のコマンドでパスワードを再設定しましょう!

mysql
mysql> set password for root@localhost=password('ここに新しいパスワード');
52
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
62