【導入実績300社以上】AWS 構築・運用保守サービス

【導入実績300社以上】AWS 構築・運用保守サービス

【サーバー管理不要】WordPress専用クラウド『WebSpeed』

【サーバー管理不要】WordPress専用クラウド『WebSpeed』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【コミュニケーションアプリ開発】LINE アプリ開発サービス

【コミュニケーションアプリ開発】LINE アプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio アプリ開発サービス

【音声アプリ開発】Twilio アプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【CPU】AMD EPYC 技術検証(PoC)サービス

【CPU】AMD EPYC 技術検証(PoC)サービス

【Webシステム / サービス開発】SAKARAKU Lab(セカラクラボ)

【Webシステム / サービス開発】SAKARAKU Lab(セカラクラボ)

【取材記事】サーバー系企業ビヨンドが サーバーサイドエンジニアを募集中

【取材記事】サーバー系企業ビヨンドが サーバーサイドエンジニアを募集中

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【15周年記念 特設サイト】ビヨンドは「2022.4.4」で15周年を迎えました!

【15周年記念 特設サイト】ビヨンドは「2022.4.4」で15周年を迎えました!

これで解決!忘れてしまったMySQLのrootユーザーパスワードを変更する

こんにちは!
株式会社ビヨンド四国オフィスのペルシャ猫、いのうえです。

私が躓いたMySQLに入ろうと思ったら入れない。。。
失敗談から成功体験談をご紹介します。

初期パスワードはどこ??

初期パスワードを確認するためには、/var/log以下の「mysqld.log」を確認する必要があります。
「mysqld.log」にテンポラリのパスワードが出力されるようになったのは、バージョン5.7からです。
MySQLのClientバージョンで確認するには以下のコマンドを入力します。

[root@test-aws-harukainoue ~]# mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper

私のローカル環境ではMySQLのバージョンが5.7以上であることが分かりました!

[root@test-aws-harukainoue log]# pwd
/var/log
[root@test-aws-harukainoue log]# less mysqld.log | grep "temporary password"
2019-04-08T02:32:37.248018Z 1 [Note] A temporary password is generated for root@localhost: x=B-:.9iaqc?

lessで見ると、初期パスワードを探すのが大変なので、
「grep」で【temporary password】を含む文字列を抽出します。
実行結果からMySQLの初期パスワードは「x=B-:.9iaqc?」の文字列であることが分かります。
では、MySQLに入ってみましょう!
MySQLに入る時のコマンドは以下です。

mysql -u root -p

実行すると、パスワードの入力を求められるので「x=B-:.9iaqc?」を入力しました。

Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

あれ???こんなはずじゃない。。。
何度やってもエラーが表示され、MySQLに入れません。
これでは、MySQLのパスワードを新しいものに変更することが出来ません。。。
もしかすると、以前にMySQLのパスワードを変えたものの、思い出せないのかもしれないと思い、
別の方法でチャレンジ!

これで解決!Newパスワードを設定

viで「my.cnf」を開き編集します。

[root@test-aws-harukainoue etc]# vi /etc/my.cnf

[mysqld]の下に「skip-grant-tables」を入力し、上書き保存をしてください。
viの詳しい編集、保存方法は前回ブログの【Linux初心者向け】できた!viコマンドで編集と保存を参考にしてください。
MySQLを再起動します。

[root@test-aws-harukainoue etc]# systemctl restart mysqld

MySQLに入ります。

[root@test-aws-harukainoue etc]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

これでMySQLに入ることが出来たので、以下を実行し、権限の反映と新しいパスワードを設定します。

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newpassword';
Query OK, 0 rows affected (0.00 sec)

新しいパスワードに変更することが出来たので、MySQLから出ます。

mysql> quit

もう一度viで「my.cnf」を開き編集します。
今度は、先ほど追加した「skip-grant-tables」を削除し、上書き保存をします。
また、MySQLを再起動します。

[root@test-aws-harukainoue etc]# systemctl restart mysqld

新しく設定したパスワードでMySQLに入ってみましょう!

[root@test-aws-harukainoue etc]# mysql -u root -p
Enter password:Newpassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

成功です!MySQLに新しいパスワードで入ることが出来ました!

ちなみにMySQLに入ってから、MySQLのバージョンを確認する方法はこちらです。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.25    |
+-----------+
1 row in set (0.00 sec)

またまた、ちなみにMySQLのServerバージョンで確認する方法はこちらです。
MySQLのServerバージョンで確認する場合は、MySQLに入る時のパスワードが必要です。

[root@test-aws-harukainoue ~]# mysqladmin -u root -p version
Enter password:Newpassword
mysqladmin  Ver 8.42 Distrib 5.7.25, for Linux on x86_64
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.7.25
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 21 min 2 sec

Threads: 1  Questions: 2  Slow queries: 0  Opens: 105  Flush tables: 1  Open tables: 98  Queries per second avg: 0.001

さいごに

初期パスワードでMySQLに入れなかったのは、
私が以前パスワードを変えていて、そのことを忘れていたからだと思います。
自分のローカル環境で検証している時など、MySQLのパスワードを忘れてしまった!なんて時は試してみてください。
MySQLってほんとにわからない。。。
苦手意識を持たずに、今後もチャレンジを繰り返していきたいです!

日々成長、日々前進。
毎日、私自身をアップデートしていかなければ!!!
最後まで読んでくださって、ありがとうございます。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
2
読み込み中...
2 票, 平均: 1.00 / 12
15,703
facebook twitter はてなブックマーク

この記事をかいた人

About the author

井上明香

システムソリューション部に所属。
ビヨンドに四国オフィス設立メンバーとして入社。IT業界に未経験で飛び込みました。
教育チームとして、新卒、中途、既存メンバーのカリキュラムの作成や研修の実施を行っています。
主な業務は、サーバーの運用保守。
とにかく、お客様のコンテンツを大切に思っています。
Webコンテンツ事業部、YouTubeチームにも所属。