環境: Solaris 10
この MySQL サーバーは、6 か月間稼働しています。今日、突然クラッシュしました。ユーザーとして「mysql」と入力すると、エラーが発生します。MYSQL" Error 2002 (HY000): Can't Connect to Local MySQL server though socket '/tmp/mysql.sock'
ルートとして mysql と入力すると、エラーが表示されますmysql: not found
。
サーバーは MySQL を開こうとしますが、9 ~ 10 秒間開いたままになり、プロセスが再開されます。以下はアプリケーション ログです。
アプリケーションデータベースmysql_mysql-csk.log [ 5月30日 22:37:52 有効化されました。 ] [ 5月30日 22:37:58 設定を再読み込みしています。 ] [ 5 月 30 日 22:37:59 開始メソッド ("/opt/coolstack/lib/svc/method/svc-cskmysql start") を実行しています ] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ 5月30日 22:37:59 メソッド「start」がステータス0で終了しました ] [ 5月30日 22:38:13 サービス中のすべてのプロセスが終了したため停止します。 ] [ 5月30日 22:38:13 停止メソッドを実行しています ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") ] [ 5月30日 22:38:13 メソッド「stop」がステータス0で終了しました ] [ 5月30日 22:38:13 開始メソッド ("/opt/coolstack/lib/svc/method/svc-cskmysql start") を実行しています ] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ 5月30日 22:38:13 メソッド「start」がステータス0で終了しました ] [ 5月30日 22:38:25 サービス中のすべてのプロセスが終了したため停止します。 ] [ 5月30日 22:38:25 停止メソッド ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") を実行しています ] [ 5月30日 22:38:25 メソッド「stop」がステータス0で終了しました ]
誰かが以前にこれに遭遇したことがあり、それを修正する方法を知っているかもしれないことを願っています。
答え1
同様の問題に遭遇した人のために。
すべての innoDB テーブルのインデックスが破損していました。最終的に実行できた唯一のことは、強制リカバリを実行することでした。
これを投稿したとき、すでに force-recovery = 4 を試していましたが、失敗していたので、まったく機能しないだろうと考えました。
最終的には、force-recovery =2 を機能させることができ、データにアクセスできるようになりました。
すべてをバックアップした後、インデックスを修復したところ、それ以降はサーバーは正常になりました。
答え2
まず最初に思いつくのは、MySQLのログ自体をチェックすることでしょう。おそらく/dbpool1/data/$hostname.err
MySQL が起動しない理由が明らかになるかもしれません。あるいは、起動コマンドを手動で実行するのも役立つかもしれません。
/opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid