TeamSpeak 3サーバを立ち上げても数分で落ちる時の対処

ある日、TeamSpeak 3サーバを再起動させたところ、数分後に落ちてしまうことがあった。
以下がその時のTeamSpeak サーバのログ

error: Lost connection to MySQL server during query
error: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111)
Assertion “error == ERROR_ok” failed at ../../../../s/deps/teamspeak_server_lib/src/ts_server/database/db_database.cpp:157;

また、MariaDBのログにはこんなログも。

[ERROR] mysqld: Table ‘./wordpress/wp_options’ is marked as crashed and should be repaired
InnoDB: Assertion failure in thread 139765944185600 in file fsp0fsp.cc line 2390
(省略)
[Note] InnoDB: Doing recovery: scanned up to log sequence number 4863293368
[Note] InnoDB: Starting crash recovery.

何回MariaDBを再起動させても”[Note] Crash recovery finished.”が消えない状況だったため、データベースの復旧が必要となった。

自分の環境では以下の手順で復旧ができた。

  1. 以下の行をmy.cnfに追加しMariaDBを起動する。
    [mysqld]
    innodb_force_recovery = 1
  2. mysqldumpで全てのデータベースのダンプをとる。
  3. MariaDBを停止する。
  4. mysqlのデータベースのデータファイルを全て削除する。
    (mysqlフォルダ内全て)
  5. 手順1.で追加した行を削除する。
  6. mysql_install_dbを実行する。
  7. MariaDBを起動する。
  8. mysql_secure_installationを実行する。
  9. 手順2.でとったダンプからデータベースを復旧する。

手順9.で”No more room in record file”とエラーが出る場合は、
手順1.で追加した行を削除し忘れているはず。

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です