メモ/MySQLが起動しなくなった&rootのパスワードがわからなくなった時の対処

memo_top

突然 Mysql が起動出来なくなったので対処したら今度は root のパスを失念・・・。

起動しなくなった MySQL

screenshot_24

エラーログはこんな感じ。

1150817 16:17:34 [ERROR] Plugin 'InnoDB' init function returned error.
2150817 16:17:34 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
3150817 16:17:34 [ERROR] Unknown/unsupported storage engine: innodb
4150817 16:17:34 [ERROR] Aborting

何回か経験あるけど、大抵はデータフォルダの「lib_logfile0」と「lib_logfile1」を削除することで解決する。

が、今回それで解決しなかったのでデータフォルダを空にして(既存のファイルは別の場所にバックアップ)起動させる。

ちなみにデータフォルダは/etc/my.conf に設定した値があるのでそれを確認。
大体の場合は「/var/lib/mysql」かと。

データフォルダが空の状態で起動させると立ち上がり、データフォルダに色々ファイルが出来る。

ここで一旦停止してバックアップしておいたファイルを上書き → 再起動で正常な状態に戻る。

screenshot_25

これで一安心とおもっていたら今度は root のパスを失念している事に気づく・・・。

ついでなのでそれについてもメモ。

MySQL の root パスワードを失念した場合の対処

 1#まずはMySQLをストップさせる
 2service mysqld stop
 3
 4#MySQLをセーフモードで起動
 5mysqld_safe --skip-grant-tables &
 6
 7#起動したらログイン
 8mysql -u root
 9
10#使用するデータベースを変える
11use mysql;
12
13#ここでパスワードを設定し直す(hogehoge部分を設定したいパスに)
14update user set password=PASSWORD("hogehoge") where User='root';
15
16#設定したパスワードを反映
17flush privileges;
18
19#最後に終了
20quit

この流れで root パスワードを再設定。

このあと MySQL サーバー自体を再起動してからログイン出来るかを試して完了。

 

とりとめのないまとめ

今回はMySQLの起動できない問題にはじまりrootのパスワード失念と言うポカをしました。

と言うのも、テスト環境で作ったサーバーだからと言って何も控えて無かった自分が悪いのですけど。

・・・・気をつけます(´Д⊂ヽ