0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MySQL 8.3】rootユーザーのパスワードを忘れた際のパスワード変更方法(Windows)

Posted at

はじめに

MySQL使っていますか?
MySQLの利用においては、root以外のユーザーを使用することがほとんどであり、
rootユーザーはたまーにしか使わないかと思います。

このように使用頻度が少ないため、rootユーザーのパスワードを忘れてしまうケースがあり、この場合、rootユーザーのパスワードを変更する必要があります。
(どこかにパスワードをメモしておけばこんなことにはならないのですが、
私のようにそれをサボる人もいるわけで。。。)

Linux OSにMySQLを構築した場合、rootユーザーの初期パスワードは「/var/log/mysqld.log」に記述されているため、このファイルを参照することで確認できます。
https://qiita.com/chii-08/items/a0d41f4bb94309876763


では、Windowsの場合はどうでしょうか?
私が調べた限り、初期パスワードをどこかのファイルに記載されているといった情報は確認できませんでした。

故に、rootユーザーのパスワードを忘れ、再度このユーザーでMySQLに接続したい場合は、どうにかしてこのユーザーのパスワードを変更する必要があります。


Windowsにおけるrootユーザーのパスワード変更方法の1つとして、以下記事にあるやり方があります。
 パスワードなしで使えるモードでMySQLを起動してrootのパスワードを変更
https://tech.adseed.co.jp/20201210185248dt6
https://qiita.com/Nekonecode/items/c44896105f1c2b22630e

私もこのやり方でrootユーザーのパスワード変更を試みましたが、MySQLへのログイン(mysql -u root mysql)ができず、ここで詰まってしまいました。

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)

これを受け色々調べたところ、以下サイト記載のやり方でrootユーザーのパスワードを変更できたので、本記事ではこの手順によるrootパスワードの変更方法をご紹介したいと思います。
https://dev.mysql.com/doc/refman/8.0/ja/resetting-permissions.html

環境情報

Windows 10
MySQL 8.3

パスワード変更手順

まず、Windowsのサービスマネージャーを開き、MySQLを停止します。
image.png


停止後、MySQLを右クリック > プロパティを開き、MySQLサービスの実行ファイルパスをコピーし、どこかに控えておきます。
image.png

以下は実行ファイルパスの例です。
(このパスは後述のMySQL実行に使います。)

"C:\Program Files\MySQL\MySQL Server 8.3\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.3\my.ini" MySQL83

その後、所定のフォルダにてテキストファイルを作成し、rootユーザーのパスワードを変更するSQL文を記載します。

update-root.txt
ALTER USER 'root'@'localhost' IDENTIFIED BY '<新しいパスワード>';

次に、MySQLを実行するコマンドを作成します。
上記で控えた実行パスの末尾「MySQL*」を削除し、「--init-file」オプションを追加します。
このオプションに、上記のrootユーザーパスワード変更SQL文が記載されたテキストファイルのパスを指定します。
以下は、実行コマンドの例です。

"C:\Program Files\MySQL\MySQL Server 8.3\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.3\my.ini" --init-file=C:\data\update-root.txt

実行コマンドが用意できたら、コマンドプロンプトを管理者権限で実行し、
上記コマンドを実行します。
※コマンドを実行しても何も返されません。

rootユーザーでログインできるか確認

コマンド実行後、別のコマンドプロンプトを開き、mysqlへrootユーザーでログインできるか確認します。

mysql -u root mysql -p

以下のようにMySQLへログインできればOKです。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.3.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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>

ログインができたら、実行コマンドを中断します。
(rootユーザーパスワード変更テキストを削除しておきましょう。)

サービスマネージャーに戻り、MySQLを実行します。
image.png

実行後、再度コマンドプロンプトでrootユーザーでMySQLへログインできるか確認します。

mysql -u root mysql -p

以下のようにMySQLへログインできればOKです。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.3.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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>

参考資料

https://qiita.com/chii-08/items/a0d41f4bb94309876763
https://tech.adseed.co.jp/20201210185248dt6
https://qiita.com/Nekonecode/items/c44896105f1c2b22630e
https://dev.mysql.com/doc/refman/8.0/ja/resetting-permissions.html

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?