大変だー mariadb(mysql)が死んだ

データーベースが死んだので、もちろんWEBサーバーにエラーが出てアクセスできない

早急に直したい。でもデーターベース(以後:DB)が動いていないのでmysqldumpは使えないので、DBのデーター領域(デフォルトは/var/lib/mysql/だが私は変更している)をバックアップ(実は毎日午前3時に全てのDBのバックアップはあるのですが、この時点で既に変更があるので、ここからリストアはとりあえずやらない)DBが止まっていることを確認後
$ sudo \cp -af DBのデーたDIR/* コピー先のDIR
$ sudo rm -rf DBのデータDIR/*
これで、DBをスターとすると必要なファイルを自動で作るので
$ sudo systemctl start mariadb
$ sudo systemctl status mariadb
で確認。OK動いている。ではリストア
$ sudo \cp -af  バックアップしてあったDIR/* DBのデータDIR
そしてDBスタート
$ sudo systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code.
See “systemctl status mariadb.service” and “journalctl -xeu mariadb.service” for details.
あちゃー、又エラー
$ journalctl -xeu mariadb.service
長いので要点
Database MariaDB is probably initialized in /Rails/mysql already, nothing is done.
If this is not the case, make sure the /Rails/mysql is empty before running mariadb-prepare-db-dir.
ようは、最初と同じ、DBのデータDIRを空にしてスタートしろと
だったらログを見てみよう
$ sudo gedit /var/log/mariadb/mariadb.log
抜粋

  • [ERROR] File '/Rails/mysql/aria_log_control' not found (Errcode: 13 "Permission denied")

  • [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

  • [ERROR] InnoDB: Missing FILE_CHECKPOINT …

ibdata1は書き込み可だし、オーナーもmysql なのに!
色々調べると、コピー元の壊れた(または整合性の合わない)ib_logfile を読み込んでしまっていることが原因です。ということだ。だったら、ib_logfileを消せば、起動時に作ってくれるので、一様DBが止まっている事を確認後
$ sudo rm -f /Rails/mysql/ib_logfile*
念の為、所有者や権限を設定
$ sudo chown -R mysql:mysql /Rails/mysql
権限の変更(ディレクトリは755、ファイルは660)
$ sudo find /Rails/mysql -type d -exec chmod 755 {} \;
$ sudo find /Rails/mysql -type f -exec chmod 660 {} \;
私はSELinuxはdisableしているので、
$ sudo syatemctl start mariadb
$ sudo systemctl status mariadb
やっとアクティブになったので、WEBを確認、
バッチリ,動いている。バンザーイ

フジマル について

1947年生れ、東京電機大学二部電気通信工学科卒、最後はスリランカ航空で営業だったのですが2018年に㈱インパック・ジャパンに再就職。趣味:登山、スキー、車いじり、コンピューター
カテゴリー: その他 パーマリンク

コメントを残す

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

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください