53
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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

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('ここに新しいパスワード');
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
53
Help us understand the problem. What are the problem?