データベースアクセスエラーの対処

前回にも少し書きましたが、先日にデータベースのアクセスエラーで当ブログへのアクセスができなくなっていました。
今回は、その際の対処要領の備忘録です。

ブログにアクセスすると「Error establishing a database connection」と表示されアクセスできませんでした。

サービスを確認すると「failed」となっており、動いていません。

単純にサービスがダウンしただけで起動し直せば解決すると思い、起動してみましたが起動しませんでした。

データベース(MariaDB)のバージョンを最新版にアップデート
10.11.9 ⇒ 11.5.2

公式のドキュメントにあるようにMariaDBパッケージリポジトリセットアップスクリプトを使用して最新バージョンのリポジトリ構成にアップデートします。

1行目:リポジトリセットアップスクリプトの実行
3行目:リポジトリ構成の確認
6行目:MariaDBのバージョンが最新版をインストールするように「11.rolling」となっている

サービスは動いてはいないのですが、おまじないで停止します。

インストールされている現バージョンのMariaDBをアンインストールします。

インストール後のパッケージリストを確認します。

MariaDBのパッケージが一部アップデートされていないので、YUMアップデートを実行します。

すべてのMariaDBインストール済みパッケージのバージョンが最新版にアップデートされた。

必要に応じて、設定ファイル(my.cnf)などを変更します。
※当サーバの環境では、「my.cnf」にはインクルード設定としており、「/etc/my.cnf.d/server.cnf」で設定している

[mariadb]セクションに以下を追加
6行目:ソケットファイルを明示的に指定
7行目:文字セットを4バイト扱える「utf8mb4」に設定
8行目:エラーログの出力先指定
9行目:すべてのクエリログを出力する設定
10行目:クエリログの出力先指定

サービスを起動してみたが、変わらず起動せず。

ここからが、本題のエラー対処になります。

MariaDBのジャーナルログをmariadb.logとして手動で出力してみます。

1行目:MariaDBのジャーナルログの出力
3行目:出力したジャーナルログの確認

ジャーナルログの中で「CAPABILITIES」に関して色々と調べていくと、あるサイトに辿り着き、MariaDBのサービスのある設定をコメントアウトすることで起動できたとあったので試してみました。

9行目:コメントアウト

AmbientCapabilitiesは、プロセスが実行される環境で、プロセスがデフォルトで持つことができる特別な権限のことです。MariaDBのようなデータベースサーバーは、他のプロセスと通信したり、システムリソースにアクセスしたりするために、特定のcapabilitiesを必要とすることがあります。

Geminiに聞いてみた

CAP_AUDIT_WRITE: システム監査イベントを書き込むことを許可します。
CAP_IPC_LOCK: 共有メモリセグメントへのロック操作を許可します。
CAP_DAC_OVERRIDE: ファイルのアクセス許可をオーバーライドすることを許可します。

GEMINIに聞いてみた

サービスファイルを変更したのでデーモンを再読み込みします。

問題が取り除かれたため今度はエラー無く起動しました。

6行目:「Active: active (running)」となっているのを確認

MariaDBの起動後、MariaDBのバージョンをアップデートしたのでアップグレードツールを実行します。

データベース構造の調整: 新しいバージョンで変更されたデータベースの構造を自動的に調整します。
プラグインの更新: 古いバージョンのプラグインを新しいバージョンに置き換えます。
設定ファイルの調整: 新しいバージョンに対応するために、設定ファイルを変更します。
内部テーブルのチェックと修復: データベースの内部テーブルをチェックし、必要に応じて修復します。

GEMINIに聞いてみた

データベースへのログイン及びブログへのアクセスをそれぞれ確認します。

ブログへのアクセスも問題なく確認できました。
対処後、1週間ほど経過しましたが、問題なく動作しているようです。

いいね! & シェア お願いします。

コメントは受け付けていません。