KUSONEKOの見る世界

MariaDB復旧

サーバから以下のメールが届いた。
CurrentPendingSector
Device: /dev/sda [SAT], 5 Currently unreadable (pending) sectors

それからしばらくすると、以下のメールが届き、mariadbが正常に使えなくなってしまった。
Cron <apache@server> /usr/bin/php /var/www/html/tt-rss/update.php --feeds --quiet
<pre>Exception while creating PDO object:SQLSTATE[HY000] [2002] Connection refused</pre>

ひとまず、使用中のデータベースをダンプすることにした。
mysqldump -u root -p ttrss > ttrss.dump
mysqldump -u root -p nextcloud --default-character-set=utf8mb4 > nextcloud.dump

上記のダンプを実行してみるものの、以下のエラーが出てきたがエラーが出なくなるまで繰り返した。
mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)" when trying to connect
mysqldump: Got error: 2013: "Lost connection to MySQL server during query" when using LOCK TABLES
実際はzabbixもあったが、容量が多すぎるためか成功しなかった。

MariaDBの復旧のため、試したのは次の通り。

mariadb, mariadb-serverの再インストール

yumでremoveとinstallをするも状況は変わらなかった。

MariaDB初期化

以下の手順で初期化をし、リストアしたところ直った。
[root@server ~]# systemctl stop mariadb
[root@server ~]# cd /var/lib/mysql
[root@server mysql]# rm -rf *
[root@server mysql]# mysql_install_db --datadir=/var/lib/mysql
[root@server mysql]# chown mysql. /var/lib/mysql -R
[root@server mysql]# mysql_secure_installation
パスワード設定以外は、空Enter。
[root@server mysql]# systemctl start mariadb
[root@server mysql]# mysql -u root -p
Enter password:

MariaDB [(none)]> CREATE DATABASE ttrss;
MariaDB [(none)]> CREATE DATABASE nextcloud CHARACTER SET utf8mb4;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO user@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

[root@server mysql]# mysql -u root -p ttrss < ttrss.dump
Enter password:

[root@server mysql]# mysql -u root -p --default-character-set=utf8mb4 nextcloud < nextcloud.dump
Enter password: