さぼてんのブロク

日々の出来事を備忘録的に書いていきます

XAMPP上のMySQL rootパスワード忘れの対応

そういえば、後で役立ちそうな情報を記録していくために「ソフトウェア」という書庫を作っていたけど、全然記事を投稿していませんでした。
他にも同じようなことで悩んでいる人もいるかもしれないので、これからはちょくちょく情報をアップしていこうと思います。今回は、

「XAMPP上のMySQL rootパスワード忘れの対応」

そもそも、XAMPPとは、Windows上でLAMP環境を構築するソフトで、導入をするとApacheMySQLPerlなど整合を取って利用可能に設定ができます。まぁ、Windows上で手軽にLAMPを構築するのには良いソフトです。自分のPCにも導入はされているのですが、久しぶりに利用しようと思うと導入されているMySQLのrootのパスワードがわからなくなってしまっているのに気づきました。

で、いろいろと調べたのですが、うまく自分の状況に合うものがなく、今回試行錯誤で行った手順をまとめておきます。

前提 
XAMPP 1.7.4 

0)準備 
MySQLを停止する。
mysqldというプロセスでWindows上で動いています。これも自分はいつもXAMPP Control Panelから手動でプロセスを起動するようにしているのですが、サービスで自動で起動するようにしている環境では明示的に停止する必要があります。今回、自分は、XAMPP Control PanelからMySQLを停止しました。 

1) MySQLをフル権限モードで起動する 
コマンドウィンドウを開いて、コマンドプロンプトで以下のコマンドを打ちます。(パスはxamppを導入したフォルダを確認して、環境に合わせて変更ください)
C:\xampp\mysql\bin>mysqld.exe --skip-grant-tables 
MySQLのデーモンを権限を利用しないモード(誰でもフル権限)で起動します。このウィンドウは、コマンドが実行中のままになります。 

2)rootでのログイン 
別のコマンドウィンドウを開いて、同じくコマンドプロンプトで以下のコマンドを打ってrootユーザーでDBに接続します。

cd C:\xampp\mysql\bin\ 
C:\xampp\mysql\bin>mysql -u root mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.5.8 MySQL Community Server (GPL

Copyright (c) 2000, 2010, 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. 

rootユーザーのパスワードを"password"に変更します。これは自分のすきなパスワードに設定しても良いです。
mysql> update user set password=password("password") where user='root'; 
Query OK, 2 rows affected (0.00 sec) 
Rows matched: 2  Changed: 2  Warnings: 0 

mysql> commit; 
Query OK, 0 rows affected (0.00 sec) 

これで、rootのパスワードが初期化されて、設定したパスワードに変更されました。

3)XAMPP Control PanelからMySQLの停止と起動 
rootのパスワードも設定されたので、今度は、通常のモードでMySQLを起動します。

起動しているMySQLのデーモンの止め方はいろいろありますが、XAMPP Control Panelを開くと、MySQLがrunningになっているので、停止します。(さきほどデーモンを起動したウィンドウが閉じます)
そして、同じく、XAMPP Control PanelからMySQLを起動します。(これで再起動完了)

4)動作確認
改めてログオン。再びrootユーザーでログオンします。
コマンドプロンプトから以下のコマンドでMySQLへ接続します。パスワードはさきほど設定したrootユーザーのパスワードを利用します。
C:\xampp\mysql\bin>mysql -u root -p 
Enter password: ******** 
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.5.8 MySQL Community Server (GPL

Copyright (c) 2000, 2010, 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のパスワードをすっかり忘れてしまっていましたが、後は、この記事を投稿したことを忘れなければ大丈夫です。