MediaWikiのバージョン: 1.24.1
検索すると下記のエラーメッセージが表示され検索できなくなってしまった。
データベース クエリのエラーが発生しました。 これはソフトウェアのバグである可能性があります。
調べた所、下記をLocalSettings.phpの末尾に追加すると、実際のクエリやエラーメッセージが表示されるよう。
$wgShowSQLErrors = true;
参照: https://www.mediawiki.org/wiki/Manual:$wgShowSQLErrors/ja
これを使いして再度検索を実行すると、下記のエラーが表示される。
- クエリ:
SELECT page_id,page_namespace,page_title FROMpage
,searchindex
WHERE (page_id=si_page) AND ( MATCH(si_title) AGAINST('+aaau800 ' IN BOOLEAN MODE) ) AND page_namespace = '0' LIMIT 20 - 関数: SearchMySQL::searchInternal
- エラー: 145 Table './[DB名]/searchindex' is marked as crashed and should be repaired
これで調べるとまとめてくださっている方がいた。
下記を実行し、mysqldを再起動することで修正できた。
$ cd /var/lib/mysql/[DB名]
$ myisamchk -r searchindex.MYI
上のLocalSettings.phpに仕込んだ行を削除しサービスを再起動して完了。