MySQL+Spiderの組み合わせで運用している場合、Spiderノードがメモリ不足によりクラッシュする場合がある。
よくある。とくにシステム構築中のテスト稼働や大量データの移行時、パラメータチューニング中など…。
ところがこれが発生すると、通常のrestartやstop~startが効かなくなる。
sockが無いとか、pid fileが腐ってると言われたりして、まったくMySQL起動しなくなる。
そんな時の解決方法として下記手段を用いているが、それでも復活しない場合もある...。
1.まずはsockファイルを作成
vi /tmp/mysql.sock
内容はブランクでよいので、このまま保存してviを閉じる。
2.pidファイルを作成
pidファイルが無くなっているか腐っている場合が多いので、こちらもブランクのファイルを作成。
パスやpidファイル名は適宜変更。
(startする際にpidファイルに関するエラーメッセージが表示されるので、エラーメッセージに表示されるpidファイル名を利用するとよい)
vi /where/you/install/mysql/data/ip-999-999-999-999.pid
3.上記で作成したファイルの権限を変更
chown mysql:mysql /tmp/mysql.sock chown mysql:mysql /where/you/install/mysql/data/ip-999-999-999-999.pid
4.mysqld_safeを起動させ、その間にmysqldをスタート
ターミナルを2つ用意して、まずはmysql_safeを起動。
/where/you/install/mysql/bin/mysqld_safe
その間に別のターミナルでMySQLサーバを起動します。
service mysql start
これで起動するときがあります。
それでも無理な時はサーバを窓から投げ捨ててください...。
歴戦のDBAとかではないのでこのような対処療法しか知りません。
どなたか、もっと良い方法をご存知の方は是非教えていただきたい。