コメントありがとうございます。 サービス終了した今なら、安く中古が手に入りそ…
突然MariaDBが逝った・・・
突然データベースにアクセス出来なくなったので
復旧までの作業を記録
$ systemctl status -l mariadb.service ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
ログを確認してみる
$ sudo tail /var/log/mariadb/mariadb.log 180216 13:30:44 [ERROR] Plugin 'InnoDB' init function returned error. 180216 13:30:44 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 180216 13:30:44 [Note] Plugin 'FEEDBACK' is disabled. 180216 13:30:44 [ERROR] Unknown/unsupported storage engine: InnoDB 180216 13:30:44 [ERROR] Aborting
InnoDB エンジンが起動していない・・・
問題の切り分けの為、データを削除(移動)してみる
$ sudo cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql $ sudo mv /var/lib/mysql /var/lib/mysql.`date +%Y%m%d` $ sudo mkdir /var/lib/mysql/ $ sudo chown mysql:mysql /var/lib/mysql/ $ sudo systemctl start mariadb.service
起動した!
データを戻してリカバリーモードで起動してみる
$ sudo cp -a /var/lib/mysql.20180216 /var/lib/mysql $ sudo cp /etc/my.cnf /etc/my.cnf.`date +%Y%m%d` $ sudo vi /etc/my.cnf [mysqld] innodb_force_recovery = 1 :wq $ sudo systemctl restart mariadb.service
起動する
mysqldumpでデータを抜き出す(クラッシュしているDBもわかるのを期待して)
$ mkdir mariadb $ mysqldump -u USER DB_NAME_1 > /home/USER/mariadb/DB_NAME_1.dump -p $ mysqldump -u USER DB_NAME_2 > /home/USER/mariadb/DB_NAME_2.dump -p
あれ?
全部抜けた!!
今回は原因箇所が特定できなかったので、
初期化してから復元する事に・・・
sudo vi /etc/my.cnf [mysqld] #innodb_force_recovery = 1 :wq $ sudo rm -rf /var/lib/mysql $ sudo mkdir /var/lib/mysql/ $ sudo chown mysql:mysql /var/lib/mysql/ $ sudo systemctl start mariadb.service $ sudo mysql_secure_installation $ mysql -u root -p MariaDB [(none)]> CREATE DATABASE `DB_NAME_1`; MariaDB [(none)]> CREATE DATABASE `DB_NAME_2`; MariaDB [(none)]> CREATE USER 'USER'@'localhost' IDENTIFIED BY 'PASSWORD'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit $ sudo mysql -u USER -D DB_NAME_1 < /home/USER/mariadb/DB_NAME_1.dump -p $ sudo mysql -u USER -D DB_NAME_2 < /home/USER/mariadb/DB_NAME_2.dump -p
めでたしめでたし
検索
コメントを残す