LIGデザイナー採用
LIGデザイナー採用
2014.05.07

MySQLでrootパスワードを忘れた場合の対処方法

tetsu

こんにちは、管理課でありながらエンジニア(?)のtetsuです。

MySQLでrootパスワードを紛失したり、またはパスワードが行方不明になったりしたとき、MySQLへの接続が出来なくなったら冷や汗ものですよね?

よくこんなエラーに遭遇します。

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

今回は、このような場合でも、MySQLのrootのパスワードをリセットする方法を紹介します。

サーバの環境はCentOS、MySQL上での説明になります。

MySQLでrootパスワードを忘れた場合の対処方法

サーバへ接続

まずはサーバへSSH接続をします。これを行えないと話が始まりません。笑

SSH接続については省略します。

起動しているMySQLを停止

MySQLサービスを下記のコマンドで一旦停止させます。

service mysqld stop

MySQLをセーフモードで起動

停止したMySQLサービスを下記コマンドを使用してセーフモードで起動させます。

mysqld_safe --skip-grant-tables &

MySQLへrootでログイン

セーフモードで起動したMySQLに下記コマンドを使用してrootでログインします。

mysql -u root

 

rootのパスワードのリセット

無事にMySQLへログインできたら、下記のクエリーでrootパスワードを再設定します。

use mysql;

update user set password=PASSWORD("ここにパスワードを記述") where User='root';

flush privileges;

ここで、「Query OK」と表示されれば完了です。

パスワードのリセットが完了したので、下記コマンドでMySQLからログアウトします。

quit

セーフモードのMySQLを停止

最後に、セーフモードで起動しているMySQLを一度停止させ、下記コマンドで通常モードで再起動します。

service mysqld stop

service mysqld start

以上で、作業は終わりです。再度rootでログインできるかどうかをお試しください。

最後に

基本的にはrootでMySQLへの接続は行うことは少ないとは思いますが、使ってない分パスワードを紛失してしまう場合もあるので、しっかり管理をするようにしましょう!

mysql> quit

Bye!!

LIGでは、エンジニアを絶賛募集中!

LIGのバックエンドエンジニアに応募してみる

LIGのフロントエンドエンジニアに応募してみる