私の環境で発生した問題です。
CentOS 8.x/Rocky Linux 8.xにMySQL/MariaDBをインストールし、データベースを/home以下へ保存していました。
容量とパーティションの関係でそうなったのですが、これがOS/MySQL/MariaDBアップデート時に悲劇を招きました。
無事アップデートを終えたかに見えた状態でOSを再起動してみると、データベースが起動していない!?
試しにサービスの起動を以下のコマンドで試みるも、起動してくれない。
systemctl start mariadb
/etc/my.cnf.d/に変更が行われているのではないかと疑ってみたが、どうやら関係はない。
結果はコレだった!!
/usr/lib/systemd/system/mariadb.service
もしくは
/usr/lib/systemd/system/mysql.service
この中で、バージョン情報などが変更されているのだが、以下の設定がデフォルトに戻っていた。
ProtectHome=true
この設定は、/rootや/home以下にデータベースを保存する設定をした際に変更した経緯がある。
アップデートによりファイルが更新されて、デフォルトに戻されていたのだ!
設定のバックアップファイルなどは残っておらず、結論として当該ファイルの内容は完全に初期化され、過去の設定は残っていなかった。
設定を以下の様に変更した。
ProtectHome=false
その後、以下のコマンドで設定を再読込みしサービスを起動したら正常に起動することが出来た。
systemctl daemon-reload
systemctl start mariadb
この問題をどう回避するべきなのだろう?
通常は発生しないがバグなのだろうか?仕様なのだろうか?
アップデート前に、sosreportなどで設定をバックアップしておくべきなのだろうか?
でも、バックアップを確認するのも大変ですよね。困った事象です。
お気をつけ下さい。。。。
と言いつつ、ここを見ている人は、既に嵌った人ですよね。
ご愁傷さまでしたm(__)m