どうやら、MySQLの接続障害のようだ。
調べていくと、MySQLのデータが格納されているLinuxサーバーの /var ディレクトリが
オーバーフローしたらしい。
MySQLのデータは消せない。
/var/apt/cache/archives にもたんまりキャッシュファイルが溜まっていたので、
# apt-get clean
で掃除。
これで /var に40%くらいの空きができた。
Webサイトが表示され、復活! と思いきやログインができない。
どうやら、オーバーフローの接続障害の際、MySQLのtableが損傷を受けたようだ。
mysql をリスタートさせると
# ERROR 144 (HY000) at line 1: Table './database_name/***_session' is marked as crashed and last (automatic?) repair failed
なんてエラーを吐く。
調べるとtableをリペアする方法があるらしい。
http://blog.cloudpack.jp/2011/07/27/server-news-mysql-restoration/
# mysql -u root -p
mysql> repair table ***_session;
……… 1時間以上反応なし。killする。
困った、さらにググる。
myisamchk という修復コマンドがあるらしい。
http://www.bnote.net/mysql/19_myisamchk.shtml
まずは、apache2 と mysqlを停止
# invoke-rc.d apache2 stop
# invoke-rc.d mysql stop
修復コマンド
# myisamchk -r /var/lib/mysql/database_name/***_session.MYIあ、何か走った。
2019.09.09 追記
Mysqlの仕様の変更で、ファイル名に".MYI"を含めて実行すると
myisamchk: error: 140 when opening MyISAM-tabl 'Fail_Name.MYI'\
とエラーを吐かれて上手くいかない。
ファイル名'.MYI'の拡張子を省いて実行するとよい。
# myisamchk -r でもうまく行かない場合は、Safe-Recoverの -o オプションで実行すると幸せになれるかもしれない。
まずは、apache2 と mysqlを起動
# invoke-rc.d apache2 start
# invoke-rc.d mysql start
ログインできるように回復した。
0 件のコメント:
コメントを投稿