MySQL5.7で、ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

MySQL
スポンサーリンク

DockerでMySQLを構築した後の体験談です。

環境

  • Docker
    • CentOS7.7
      • MySQL5.7をyumでインストール

事象

前述した環境下に、MySQLサーバをインストールした。

手順はこちらのとおり。

原因

MySQL 5.7 では、初回起動と同時に root ユーザーにランダムな文字列がパスワードとして設定されます。 設定されるパスワードはインストールを行う度に全く違うものです。 それでは設定されたパスワードは何なのでしょうか? 初期パスワードは MySQL のログファイルに出力されています。 ログファイルは、CentOS だと /var/log/mysqld.log です。 ログを開くと次のようにパスワードが記載されています。

MySQL 5.7 をインストールしたら最初に行うセットアップ |
WEBシステム開発のノウハウを蓄積・共有するウェブサイトです。 Ruby, PHP, Java, Apache, nginx, MySQL, Vagrant などの構築方法について詳しく解説します。

MySQL5.7だと、インストール直後にパスワード無しのrootでMySQLサーバに接続できないらしい。

そうだったっけー?

大体、Dockerコンテナで作ってるとDockerにまつわる何かを疑ってしまうけど、違ったです。。

対処

MySQLサーバインストール直後のrootパスワードを調べる。

# grep root /var/log/mysqld.log
2023-04-10T09:50:50.073049Z 1 [Note] A temporary password is generated for root@localhost: <Roz<=we4uc;

上記で出てきたパスワード
ちなみに、紛らわしい記号とかが紛れてることあるが、上記の場合、パスワードは
「<Roz<=we4uc;」

すべてとなるので、要注意。
最後の「;」が含まれないとか思っちゃう事があるかもだが、含まれるので。

上記で調べたrootパスワードでログイン

mysql -u root -p
Enter password:

コメント