突然Mysqlが起動出来なくなったので対処したら今度はrootのパスを失念・・・。
起動しなくなったMySQL
エラーログはこんな感じ。
150817 16:17:34 [ERROR] Plugin 'InnoDB' init function returned error. 150817 16:17:34 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 150817 16:17:34 [ERROR] Unknown/unsupported storage engine: innodb 150817 16:17:34 [ERROR] Aborting
何回か経験あるけど、大抵はデータフォルダの「lib_logfile0」と「lib_logfile1」を削除することで解決する。
が、今回それで解決しなかったのでデータフォルダを空にして(既存のファイルは別の場所にバックアップ)起動させる。
ちなみにデータフォルダは/etc/my.confに設定した値があるのでそれを確認。
大体の場合は「/var/lib/mysql」かと。
データフォルダが空の状態で起動させると立ち上がり、データフォルダに色々ファイルが出来る。
ここで一旦停止してバックアップしておいたファイルを上書き→再起動で正常な状態に戻る。
これで一安心とおもっていたら今度はrootのパスを失念している事に気づく・・・。
ついでなのでそれについてもメモ。
MySQLのrootパスワードを失念した場合の対処
#まずはMySQLをストップさせる service mysqld stop #MySQLをセーフモードで起動 mysqld_safe --skip-grant-tables & #起動したらログイン mysql -u root #使用するデータベースを変える use mysql; #ここでパスワードを設定し直す(hogehoge部分を設定したいパスに) update user set password=PASSWORD("hogehoge") where User='root'; #設定したパスワードを反映 flush privileges; #最後に終了 quit
この流れでrootパスワードを再設定。
このあとMySQLサーバー自体を再起動してからログイン出来るかを試して完了。
とりとめのないまとめ
今回はMySQLの起動できない問題にはじまりrootのパスワード失念と言うポカをしました。
と言うのも、テスト環境で作ったサーバーだからと言って何も控えて無かった自分が悪いのですけど。
・・・・気をつけます(´Д⊂ヽ