MariaDB upgrade to 11.8(LTS)

当方のデータベースサーバーをMariaDB 10.5からMariaDB 11.8(LTS)へアップグレードしました。

Caution!!

  • 本記事はLinux初心者の経験談です。
  • DBのアップグレードは必ずバックアップの上、作業しましょう。たとえデータを失われても当サイトは一切の責任を負いません。

Summary

  • 作業前のDBはMariaDB 10.5.27でした(10.5のLatest Versionは10.5.29)
  • MariaDB 10.5 (LTS)は2025年6月にCommunity EOL に達しました
  • ただし、Almalinux 9のApp StreamによってインストールするMariaDB 10.5のEOLはAlmalinux 9のEOLにあたる2032年6月です
  • 2025年10月14日にリリースされたJoomla! 6のDB要件はMariaDBの場合次のとおりです
  • 当サーバーにインストールされているApp StreamによるMariaDB 10.5は、まだまだアップデートを享受できるのですが、Joomla!のSupportedが10.6で、Minimumが10.4というのは、どんな影響がでるのでしょうか
  • しかし、LTSもリリースされていないMariaDB 12は、いくらRecommendedとはいえ、さすがに躊躇してしまいます
  • 結局、いろいろと浅い考えを巡らせた結果、MariaDBオフィシャルより現時点(2025年10月)で最新LTSのMariaDB 11.8へアップグレードすることとしました
    • これが、後々後悔となりますが(記事後半を参照ください)…すべては経験です
    • なお、MariaDB 11.8のCommunity EOLは2028年6月4日です
      • AlmaLinux 9 App Streamの2032年6月より早く到達することになります

Reference

Steps

  1. データバックアップ
  2. MariaDB 11.8 (LTS)用リポジトリ作成
  3. mysqld停止
  4. MaliaDB 10.5の削除
  5. MariaDB 11.8 のインストール
  6. データアップグレード
  7. mysqd起動

Backup of Database

  • MariaDBのバックアップには2つ手段があり、今回は下記Aを選択しました
    1. mariadb-dump
    2. mariadb-backup
  • 念を入れて、Akeeba Backup for Joomla!によるバックアップも実施しております

Bakupu by mariadb-dump (mysqldump)

# DB バックアップ
$ sudo mysqldump --all-databases -u hogehoge -p > /tmp/all-database-backup_20251020.sql

Modify the repository configuration

Copy Repository List from Official Site

  1. ディストリビューションとバージョンを選択します
    ディストリビューションとバージョンを選択
  2. リポジトリリスト右上のCopyボタンをクリックしてコピーします
    リポジトリリスト右上のCopyボタンをクリック

Create MariaDB 11.8 Repository List

  • 上記でコピーしたリポジトリリストを使ってMariaDB 11.8(LTS)用リポジトリ作成を作成します
# MariaDB 11.8(LTS)用リポジトリ作成
$ sudo nano /etc/yum.repos.d/MariaDB.repo
 1 # MariaDB 11.8 RedHatEnterpriseLinux repository list - created 2025-10-18 23:19 UTC
 2 # https://mariadb.org/download/
 3 [mariadb]
 4 name = MariaDB
 5 # rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
 6 # baseurl = https://rpm.mariadb.org/11.8/rhel/$releasever/$basearch
 7 baseurl = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/11.8/rhel/$releasever/$basearch
 8 # gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
 9 gpgkey = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
10 gpgcheck = 1

# MariaDB.repo SELinuxコンテキスト確認
$ ls -laZ /etc/yum.repos.d/ | grep MariaDB
-rw-r--r--.   1 root root unconfined_u:object_r:system_conf_t:s0  580 Oct 19 08:24 MariaDB.repo

# MariaDB.repo SELinuxコンテキスト修正
$ sudo chcon -u system_u /etc/yum.repos.d/MariaDB.repo 

# MariaDB.repo SELinuxコンテキスト確認
$ ls -laZ /etc/yum.repos.d/ | grep MariaDB
-rw-r--r--.   1 root root system_u:object_r:system_conf_t:s0  580 Oct 19 08:24 MariaDB.repo

Stop MariaDB

  • MariaDBを停止します
# MariaDB 停止
$ sudo systemctl stop mariadb

# MariaDB 停止状態確認
$ sudo systemctl status mariadb
○ mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: inactive (dead) since Mon 2025-10-20 08:41:44 JST; 30s ago
   Duration: 4month 2d 20h 44min 51.575s
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 903 ExecStart=/usr/libexec/mariadbd --basedir=/usr $MYSQLD_OPTS $_WSREP_NEW_CLUSTER (code=exited, status=0/SUCCESS)
   Main PID: 903 (code=exited, status=0/SUCCESS)
     Status: "MariaDB server is down"
        CPU: 1h 18min 18.403s

Oct 20 08:41:41 x210-131-209-119 systemd[1]: Stopping MariaDB 10.5 database server...
Oct 20 08:41:44 x210-131-209-119 systemd[1]: mariadb.service: Deactivated successfully.
Oct 20 08:41:44 x210-131-209-119 systemd[1]: Stopped MariaDB 10.5 database server.
Oct 20 08:41:44 x210-131-209-119 systemd[1]: mariadb.service: Consumed 1h 18min 18.403s CPU time.

Remove MariaDB 10.5

  • MariaDB 10.5を削除します
# MariaDB 削除
$ sudo dnf remove mariadb-server -y
Dependencies resolved.
======================================================================================================================================================
 Package                                         Architecture              Version                                Repository                     Size
======================================================================================================================================================
Removing:
 mariadb-server                                  x86_64                    3:10.5.27-1.el9_5                      @appstream                     63 M
Removing unused dependencies:
 libaio                                          x86_64                    0.3.111-13.el9                         @baseos                        58 k
 mariadb                                         x86_64                    3:10.5.27-1.el9_5                      @appstream                     18 M
 mariadb-backup                                  x86_64                    3:10.5.27-1.el9_5                      @appstream                     24 M
 mariadb-common                                  x86_64                    3:10.5.27-1.el9_5                      @appstream                    179 k
 mariadb-connector-c                             x86_64                    3.2.6-1.el9_0                          @appstream                    540 k
 mariadb-connector-c-config                      noarch                    3.2.6-1.el9_0                          @appstream                    497  
 mariadb-errmsg                                  x86_64                    3:10.5.27-1.el9_5                      @appstream                    2.6 M
 mariadb-gssapi-server                           x86_64                    3:10.5.27-1.el9_5                      @appstream                     20 k
 mariadb-server-utils                            x86_64                    3:10.5.27-1.el9_5                      @appstream                    801 k
 mysql-selinux                                   noarch                    1.0.13-1.el9_5                         @appstream                     50 k
 perl-DBD-MariaDB                                x86_64                    1.21-16.el9_0                          @appstream                    383 k
 perl-DBI                                        x86_64                    1.643-9.el9                            @appstream                    1.9 M
 perl-DynaLoader                                 x86_64                    1.47-481.el9                           @appstream                     32 k
 perl-File-Copy                                  noarch                    2.34-481.el9                           @appstream                     21 k
 perl-Math-BigInt                                noarch                    1:1.9998.18-460.el9                    @appstream                    709 k
 perl-Math-Complex                               noarch                    1.59-481.el9                           @appstream                     86 k
 perl-Sys-Hostname                               x86_64                    1.23-481.el9                           @appstream                     21 k
 policycoreutils-python-utils                    noarch                    3.6-2.1.el9                            @appstream                    117 k

Transaction Summary
======================================================================================================================================================
Remove  19 Packages

Freed space: 113 M
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Erasing          : mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                                                              1/19 
  Erasing          : mariadb-backup-3:10.5.27-1.el9_5.x86_64                                                                                     2/19 
  Running scriptlet: mariadb-server-3:10.5.27-1.el9_5.x86_64                                                                                     3/19 
Removed "/etc/systemd/system/multi-user.target.wants/mariadb.service".
Removed "/etc/systemd/system/mysql.service".
Removed "/etc/systemd/system/mysqld.service".

  Erasing          : mariadb-server-3:10.5.27-1.el9_5.x86_64                                                                                     3/19 
  Running scriptlet: mariadb-server-3:10.5.27-1.el9_5.x86_64                                                                                     3/19 
  Erasing          : mariadb-3:10.5.27-1.el9_5.x86_64                                                                                            4/19 
  Erasing          : mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                                                               5/19 
  Erasing          : mysql-selinux-1.0.13-1.el9_5.noarch                                                                                         6/19 
  Running scriptlet: mysql-selinux-1.0.13-1.el9_5.noarch                                                                                         6/19 
  Erasing          : mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                                                                     7/19 
  Erasing          : mariadb-common-3:10.5.27-1.el9_5.x86_64                                                                                     8/19 
  Erasing          : policycoreutils-python-utils-3.6-2.1.el9.noarch                                                                             9/19 
  Erasing          : perl-File-Copy-2.34-481.el9.noarch                                                                                         10/19 
  Erasing          : perl-DBD-MariaDB-1.21-16.el9_0.x86_64                                                                                      11/19 
  Erasing          : perl-DBI-1.643-9.el9.x86_64                                                                                                12/19 
  Erasing          : perl-Math-BigInt-1:1.9998.18-460.el9.noarch                                                                                13/19 
  Erasing          : mariadb-connector-c-3.2.6-1.el9_0.x86_64                                                                                   14/19 
  Erasing          : mariadb-connector-c-config-3.2.6-1.el9_0.noarch                                                                            15/19 
  Erasing          : perl-Math-Complex-1.59-481.el9.noarch                                                                                      16/19 
  Erasing          : perl-DynaLoader-1.47-481.el9.x86_64                                                                                        17/19 
  Erasing          : perl-Sys-Hostname-1.23-481.el9.x86_64                                                                                      18/19 
  Erasing          : libaio-0.3.111-13.el9.x86_64                                                                                               19/19 
  Running scriptlet: libaio-0.3.111-13.el9.x86_64                                                                                               19/19 
  Verifying        : libaio-0.3.111-13.el9.x86_64                                                                                                1/19 
  Verifying        : mariadb-3:10.5.27-1.el9_5.x86_64                                                                                            2/19 
  Verifying        : mariadb-backup-3:10.5.27-1.el9_5.x86_64                                                                                     3/19 
  Verifying        : mariadb-common-3:10.5.27-1.el9_5.x86_64                                                                                     4/19 
  Verifying        : mariadb-connector-c-3.2.6-1.el9_0.x86_64                                                                                    5/19 
  Verifying        : mariadb-connector-c-config-3.2.6-1.el9_0.noarch                                                                             6/19 
  Verifying        : mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                                                                     7/19 
  Verifying        : mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                                                              8/19 
  Verifying        : mariadb-server-3:10.5.27-1.el9_5.x86_64                                                                                     9/19 
  Verifying        : mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                                                              10/19 
  Verifying        : mysql-selinux-1.0.13-1.el9_5.noarch                                                                                        11/19 
  Verifying        : perl-DBD-MariaDB-1.21-16.el9_0.x86_64                                                                                      12/19 
  Verifying        : perl-DBI-1.643-9.el9.x86_64                                                                                                13/19 
  Verifying        : perl-DynaLoader-1.47-481.el9.x86_64                                                                                        14/19 
  Verifying        : perl-File-Copy-2.34-481.el9.noarch                                                                                         15/19 
  Verifying        : perl-Math-BigInt-1:1.9998.18-460.el9.noarch                                                                                16/19 
  Verifying        : perl-Math-Complex-1.59-481.el9.noarch                                                                                      17/19 
  Verifying        : perl-Sys-Hostname-1.23-481.el9.x86_64                                                                                      18/19 
  Verifying        : policycoreutils-python-utils-3.6-2.1.el9.noarch                                                                            19/19 

Removed:
  libaio-0.3.111-13.el9.x86_64                      mariadb-3:10.5.27-1.el9_5.x86_64                 mariadb-backup-3:10.5.27-1.el9_5.x86_64          
  mariadb-common-3:10.5.27-1.el9_5.x86_64           mariadb-connector-c-3.2.6-1.el9_0.x86_64         mariadb-connector-c-config-3.2.6-1.el9_0.noarch  
  mariadb-errmsg-3:10.5.27-1.el9_5.x86_64           mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64   mariadb-server-3:10.5.27-1.el9_5.x86_64          
  mariadb-server-utils-3:10.5.27-1.el9_5.x86_64     mysql-selinux-1.0.13-1.el9_5.noarch              perl-DBD-MariaDB-1.21-16.el9_0.x86_64            
  perl-DBI-1.643-9.el9.x86_64                       perl-DynaLoader-1.47-481.el9.x86_64              perl-File-Copy-2.34-481.el9.noarch               
  perl-Math-BigInt-1:1.9998.18-460.el9.noarch       perl-Math-Complex-1.59-481.el9.noarch            perl-Sys-Hostname-1.23-481.el9.x86_64            
  policycoreutils-python-utils-3.6-2.1.el9.noarch  

Complete!

Install MariaDB 11.8 (LTS)

  • MariaDB 11.8 (LTS)をインストールします
  • バージョンは11.8.3です
# MariaDB インストール
$ sudo dnf install MariaDB-server MariaDB-client
Last metadata expiration check: 0:53:27 ago on Mon 20 Oct 2025 07:57:15 AM JST.
Dependencies resolved.
======================================================================================================================================================
 Package                                    Architecture                Version                                  Repository                      Size
======================================================================================================================================================
Installing:
 MariaDB-client                             x86_64                      11.8.3-1.el9                             mariadb                        9.6 M
 MariaDB-server                             x86_64                      11.8.3-1.el9                             mariadb                         18 M
Installing dependencies:
 MariaDB-common                             x86_64                      11.8.3-1.el9                             mariadb                         92 k
 MariaDB-shared                             x86_64                      11.8.3-1.el9                             mariadb                        130 k
 boost-program-options                      x86_64                      1.75.0-10.el9                            appstream                      104 k
 galera-4                                   x86_64                      26.4.23-1.el9                            mariadb                        1.2 M
 libaio                                     x86_64                      0.3.111-13.el9                           baseos                          23 k
 perl-DBI                                   x86_64                      1.643-9.el9                              appstream                      700 k
 perl-DynaLoader                            x86_64                      1.47-481.1.el9_6                         appstream                       24 k
 perl-File-Copy                             noarch                      2.34-481.1.el9_6                         appstream                       19 k
 perl-Math-BigInt                           noarch                      1:1.9998.18-460.el9                      appstream                      188 k
 perl-Math-Complex                          noarch                      1.59-481.1.el9_6                         appstream                       45 k
 perl-Sys-Hostname                          x86_64                      1.23-481.1.el9_6                         appstream                       15 k
Installing weak dependencies:
 MariaDB-client-compat                      noarch                      11.8.3-1.el9                             mariadb                         11 k
 MariaDB-server-compat                      noarch                      11.8.3-1.el9                             mariadb                        9.0 k
 lsof                                       x86_64                      4.94.0-3.el9                             baseos                         238 k
 pv                                         x86_64                      1.6.20-1.el9                             epel                            65 k
 socat                                      x86_64                      1.7.4.1-6.el9_6.1                        appstream                      299 k

Transaction Summary
======================================================================================================================================================
Install  18 Packages

Total download size: 31 M
Installed size: 242 M
Is this ok [y/N]: y
Downloading Packages:
(1/18): MariaDB-client-compat-11.8.3-1.el9.noarch.rpm                                                                  47 kB/s |  11 kB     00:00    
(2/18): MariaDB-common-11.8.3-1.el9.x86_64.rpm                                                                        324 kB/s |  92 kB     00:00    
(3/18): MariaDB-server-compat-11.8.3-1.el9.noarch.rpm                                                                  70 kB/s | 9.0 kB     00:00    
(4/18): MariaDB-shared-11.8.3-1.el9.x86_64.rpm                                                                        960 kB/s | 130 kB     00:00    
(5/18): MariaDB-client-11.8.3-1.el9.x86_64.rpm                                                                        7.5 MB/s | 9.6 MB     00:01    
(6/18): galera-4-26.4.23-1.el9.x86_64.rpm                                                                             1.7 MB/s | 1.2 MB     00:00    
(7/18): MariaDB-server-11.8.3-1.el9.x86_64.rpm                                                                         16 MB/s |  18 MB     00:01    
(8/18): boost-program-options-1.75.0-10.el9.x86_64.rpm                                                                401 kB/s | 104 kB     00:00    
(9/18): perl-File-Copy-2.34-481.1.el9_6.noarch.rpm                                                                    761 kB/s |  19 kB     00:00    
(10/18): perl-DBI-1.643-9.el9.x86_64.rpm                                                                              2.8 MB/s | 700 kB     00:00    
(11/18): perl-Math-BigInt-1.9998.18-460.el9.noarch.rpm                                                                3.9 MB/s | 188 kB     00:00    
(12/18): perl-DynaLoader-1.47-481.1.el9_6.x86_64.rpm                                                                  314 kB/s |  24 kB     00:00    
(13/18): perl-Math-Complex-1.59-481.1.el9_6.noarch.rpm                                                                1.8 MB/s |  45 kB     00:00    
(14/18): perl-Sys-Hostname-1.23-481.1.el9_6.x86_64.rpm                                                                654 kB/s |  15 kB     00:00    
(15/18): libaio-0.3.111-13.el9.x86_64.rpm                                                                             969 kB/s |  23 kB     00:00    
(16/18): lsof-4.94.0-3.el9.x86_64.rpm                                                                                 9.1 MB/s | 238 kB     00:00    
(17/18): socat-1.7.4.1-6.el9_6.1.x86_64.rpm                                                                           2.8 MB/s | 299 kB     00:00    
(18/18): pv-1.6.20-1.el9.x86_64.rpm                                                                                   810 kB/s |  65 kB     00:00    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 8.0 MB/s |  31 MB     00:03     
MariaDB                                                                                                                95 kB/s | 6.4 kB     00:00    
Importing GPG key 0xC74CD1D8:
 Userid     : "MariaDB Signing Key "
 Fingerprint: 177F 4010 FE56 CA33 3630 0305 F165 6F24 C74C D1D8
 From       : https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Installing       : MariaDB-shared-11.8.3-1.el9.x86_64                                                                                          1/18 
  Running scriptlet: MariaDB-shared-11.8.3-1.el9.x86_64                                                                                          1/18 
  Installing       : MariaDB-common-11.8.3-1.el9.x86_64                                                                                          2/18 
  Installing       : libaio-0.3.111-13.el9.x86_64                                                                                                3/18 
  Installing       : pv-1.6.20-1.el9.x86_64                                                                                                      4/18 
  Installing       : lsof-4.94.0-3.el9.x86_64                                                                                                    5/18 
  Installing       : socat-1.7.4.1-6.el9_6.1.x86_64                                                                                              6/18 
  Installing       : perl-Sys-Hostname-1.23-481.1.el9_6.x86_64                                                                                   7/18 
  Installing       : perl-Math-Complex-1.59-481.1.el9_6.noarch                                                                                   8/18 
  Installing       : perl-Math-BigInt-1:1.9998.18-460.el9.noarch                                                                                 9/18 
  Installing       : perl-File-Copy-2.34-481.1.el9_6.noarch                                                                                     10/18 
  Installing       : perl-DynaLoader-1.47-481.1.el9_6.x86_64                                                                                    11/18 
  Installing       : perl-DBI-1.643-9.el9.x86_64                                                                                                12/18 
  Installing       : MariaDB-client-compat-11.8.3-1.el9.noarch                                                                                  13/18 
  Installing       : MariaDB-client-11.8.3-1.el9.x86_64                                                                                         14/18 
  Installing       : boost-program-options-1.75.0-10.el9.x86_64                                                                                 15/18 
  Running scriptlet: galera-4-26.4.23-1.el9.x86_64                                                                                              16/18 
  Installing       : galera-4-26.4.23-1.el9.x86_64                                                                                              16/18 
  Running scriptlet: galera-4-26.4.23-1.el9.x86_64                                                                                              16/18 
  Installing       : MariaDB-server-compat-11.8.3-1.el9.noarch                                                                                  17/18 
  Running scriptlet: MariaDB-server-11.8.3-1.el9.x86_64                                                                                         18/18 
usermod: no changes

  Installing       : MariaDB-server-11.8.3-1.el9.x86_64                                                                                         18/18 
  Running scriptlet: MariaDB-server-11.8.3-1.el9.x86_64                                                                                         18/18 
  Verifying        : MariaDB-client-11.8.3-1.el9.x86_64                                                                                          1/18 
  Verifying        : MariaDB-client-compat-11.8.3-1.el9.noarch                                                                                   2/18 
  Verifying        : MariaDB-common-11.8.3-1.el9.x86_64                                                                                          3/18 
  Verifying        : MariaDB-server-11.8.3-1.el9.x86_64                                                                                          4/18 
  Verifying        : MariaDB-server-compat-11.8.3-1.el9.noarch                                                                                   5/18 
  Verifying        : MariaDB-shared-11.8.3-1.el9.x86_64                                                                                          6/18 
  Verifying        : galera-4-26.4.23-1.el9.x86_64                                                                                               7/18 
  Verifying        : boost-program-options-1.75.0-10.el9.x86_64                                                                                  8/18 
  Verifying        : perl-DBI-1.643-9.el9.x86_64                                                                                                 9/18 
  Verifying        : perl-DynaLoader-1.47-481.1.el9_6.x86_64                                                                                    10/18 
  Verifying        : perl-File-Copy-2.34-481.1.el9_6.noarch                                                                                     11/18 
  Verifying        : perl-Math-BigInt-1:1.9998.18-460.el9.noarch                                                                                12/18 
  Verifying        : perl-Math-Complex-1.59-481.1.el9_6.noarch                                                                                  13/18 
  Verifying        : perl-Sys-Hostname-1.23-481.1.el9_6.x86_64                                                                                  14/18 
  Verifying        : socat-1.7.4.1-6.el9_6.1.x86_64                                                                                             15/18 
  Verifying        : libaio-0.3.111-13.el9.x86_64                                                                                               16/18 
  Verifying        : lsof-4.94.0-3.el9.x86_64                                                                                                   17/18 
  Verifying        : pv-1.6.20-1.el9.x86_64                                                                                                     18/18 

Installed:
  MariaDB-client-11.8.3-1.el9.x86_64               MariaDB-client-compat-11.8.3-1.el9.noarch         MariaDB-common-11.8.3-1.el9.x86_64             
  MariaDB-server-11.8.3-1.el9.x86_64               MariaDB-server-compat-11.8.3-1.el9.noarch         MariaDB-shared-11.8.3-1.el9.x86_64             
  boost-program-options-1.75.0-10.el9.x86_64       galera-4-26.4.23-1.el9.x86_64                     libaio-0.3.111-13.el9.x86_64                   
  lsof-4.94.0-3.el9.x86_64                         perl-DBI-1.643-9.el9.x86_64                       perl-DynaLoader-1.47-481.1.el9_6.x86_64        
  perl-File-Copy-2.34-481.1.el9_6.noarch           perl-Math-BigInt-1:1.9998.18-460.el9.noarch       perl-Math-Complex-1.59-481.1.el9_6.noarch      
  perl-Sys-Hostname-1.23-481.1.el9_6.x86_64        pv-1.6.20-1.el9.x86_64                            socat-1.7.4.1-6.el9_6.1.x86_64                 

Complete!

Upgrade Database

  • データベースをアップグレードします
# データベースアップグレード
$ sudo mariadb-upgrade -u hogehoge -p
Phase 1/8: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats                                 OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.global_priv                                  OK
mysql.gtid_slave_pos                               OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.index_stats                                  OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.roles_mapping                                OK
mysql.servers                                      OK
mysql.table_stats                                  OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.transaction_registry                         OK
Phase 2/8: Installing used storage engines... Skipped
Phase 3/8: Running 'mysql_fix_privilege_tables'
Phase 4/8: Fixing views
mysql.user                                         OK
sys.host_summary                                   OK
sys.host_summary_by_file_io                        OK
sys.host_summary_by_file_io_type                   OK
sys.host_summary_by_stages                         OK
sys.host_summary_by_statement_latency              OK
sys.host_summary_by_statement_type                 OK
sys.innodb_buffer_stats_by_schema                  OK
sys.innodb_buffer_stats_by_table                   OK
sys.innodb_lock_waits                              OK
sys.io_by_thread_by_latency                        OK
sys.io_global_by_file_by_bytes                     OK
sys.io_global_by_file_by_latency                   OK
sys.io_global_by_wait_by_bytes                     OK
sys.io_global_by_wait_by_latency                   OK
sys.latest_file_io                                 OK
sys.memory_by_host_by_current_bytes                OK
sys.memory_by_thread_by_current_bytes              OK
sys.memory_by_user_by_current_bytes                OK
sys.memory_global_by_current_bytes                 OK
sys.memory_global_total                            OK
sys.metrics                                        OK
sys.privileges_by_table_by_level                   OK
sys.processlist                                    OK
sys.ps_check_lost_instrumentation                  OK
sys.schema_auto_increment_columns                  OK
sys.schema_index_statistics                        OK
sys.schema_object_overview                         OK
sys.schema_redundant_indexes                       OK
sys.schema_table_lock_waits                        OK
sys.schema_table_statistics                        OK
sys.schema_table_statistics_with_buffer            OK
sys.schema_tables_with_full_table_scans            OK
sys.schema_unused_indexes                          OK
sys.session                                        OK
sys.session_ssl_status                             OK
sys.statement_analysis                             OK
sys.statements_with_errors_or_warnings             OK
sys.statements_with_full_table_scans               OK
sys.statements_with_runtimes_in_95th_percentile    OK
sys.statements_with_sorting                        OK
sys.statements_with_temp_tables                    OK
sys.user_summary                                   OK
sys.user_summary_by_file_io                        OK
sys.user_summary_by_file_io_type                   OK
sys.user_summary_by_stages                         OK
sys.user_summary_by_statement_latency              OK
sys.user_summary_by_statement_type                 OK
sys.version                                        OK
sys.wait_classes_global_by_avg_latency             OK
sys.wait_classes_global_by_latency                 OK
sys.waits_by_host_by_latency                       OK
sys.waits_by_user_by_latency                       OK
sys.waits_global_by_latency                        OK
sys.x$host_summary                                 OK
sys.x$host_summary_by_file_io                      OK
sys.x$host_summary_by_file_io_type                 OK
sys.x$host_summary_by_stages                       OK
sys.x$host_summary_by_statement_latency            OK
sys.x$host_summary_by_statement_type               OK
sys.x$innodb_buffer_stats_by_schema                OK
sys.x$innodb_buffer_stats_by_table                 OK
sys.x$innodb_lock_waits                            OK
sys.x$io_by_thread_by_latency                      OK
sys.x$io_global_by_file_by_bytes                   OK
sys.x$io_global_by_file_by_latency                 OK
sys.x$io_global_by_wait_by_bytes                   OK
sys.x$io_global_by_wait_by_latency                 OK
sys.x$latest_file_io                               OK
sys.x$memory_by_host_by_current_bytes              OK
sys.x$memory_by_thread_by_current_bytes            OK
sys.x$memory_by_user_by_current_bytes              OK
sys.x$memory_global_by_current_bytes               OK
sys.x$memory_global_total                          OK
sys.x$processlist                                  OK
sys.x$ps_digest_95th_percentile_by_avg_us          OK
sys.x$ps_digest_avg_latency_distribution           OK
sys.x$ps_schema_table_statistics_io                OK
sys.x$schema_flattened_keys                        OK
sys.x$schema_index_statistics                      OK
sys.x$schema_table_lock_waits                      OK
sys.x$schema_table_statistics                      OK
sys.x$schema_table_statistics_with_buffer          OK
sys.x$schema_tables_with_full_table_scans          OK
sys.x$session                                      OK
sys.x$statement_analysis                           OK
sys.x$statements_with_errors_or_warnings           OK
sys.x$statements_with_full_table_scans             OK
sys.x$statements_with_runtimes_in_95th_percentile  OK
sys.x$statements_with_sorting                      OK
sys.x$statements_with_temp_tables                  OK
sys.x$user_summary                                 OK
sys.x$user_summary_by_file_io                      OK
sys.x$user_summary_by_file_io_type                 OK
sys.x$user_summary_by_stages                       OK
sys.x$user_summary_by_statement_latency            OK
sys.x$user_summary_by_statement_type               OK
sys.x$wait_classes_global_by_avg_latency           OK
sys.x$wait_classes_global_by_latency               OK
sys.x$waits_by_host_by_latency                     OK
sys.x$waits_by_user_by_latency                     OK
sys.x$waits_global_by_latency                      OK
Phase 5/8: Fixing table and database names
Phase 6/8: Checking and upgrading tables
Processing databases
information_schema
# 以降、Joomla!のデータベーステーブルのチェックとアップグレードが進み、すべてOKと表示されます
performance_schema
sys
sys.sys_config                                     OK
Phase 7/8: uninstalling plugins
Phase 8/8: Running 'FLUSH PRIVILEGES'
OK

Start MariaDB

  • MariaDBを起動します
  • 起動状態を確認します
    • 問題なくMariaDB 11.8が動作しているようです
    • [Note] Plugin 'FEEDBACK' is disabled.
    • [Note] Plugin 'wsrep-provider' is disabled.
  • これで一連の作業は完了です
# MariaDB 起動・自動起動設定
$ sudo systemctl enable --now mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

# MariaDB 起動状態確認
$ sudo systemctl status mariadb
$ sudo systemctl status mariadb
● mariadb.service - MariaDB 11.8.3 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             └─migrated-from-my.cnf-settings.conf
     Active: active (running) since Mon 2025-10-20 10:53:26 JST; 8s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 1501997 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && echo _WSREP_STA>
    Process: 1502020 ExecStartPost=/bin/rm -f /var/lib/mysql/wsrep-start-position (code=exited, status=0/SUCCESS)
   Main PID: 1502008 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 13398)
     Memory: 145.3M
        CPU: 2.278s
     CGroup: /system.slice/mariadb.service
             └─1502008 /usr/sbin/mariadbd

Oct 20 10:53:24 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:24 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
Oct 20 10:53:24 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:24 0 [Note] Plugin 'FEEDBACK' is disabled.
Oct 20 10:53:24 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:24 0 [Note] Plugin 'wsrep-provider' is disabled.
Oct 20 10:53:25 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:25 0 [Note] InnoDB: Buffer pool(s) load completed at 251020 10:53:25
Oct 20 10:53:26 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:26 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.
Oct 20 10:53:26 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:26 0 [Note] Server socket created on IP: '::', port: '3306'.
Oct 20 10:53:26 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:26 0 [Note] mariadbd: Event Scheduler: Loaded 0 events
Oct 20 10:53:26 x210-131-209-119 mariadbd[1502008]: 2025-10-20 10:53:26 0 [Note] /usr/sbin/mariadbd: ready for connections.
Oct 20 10:53:26 x210-131-209-119 mariadbd[1502008]: Version: '11.8.3-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
Oct 20 10:53:26 x210-131-209-119 systemd[1]: Started MariaDB 11.8.3 database server.

SELinux denies connection to DB

  • 作業を終え、MariaDBのアップグレードは完了しましたが、Joomla!から500 Error(サーバー側の内部エラー)の通知があり正常表示されません
  • 原因は、SELinuxによりphp-fpmのmysql.sockへの接続を拒否されていることにありました
  • 早期に問題個所の特定をすることができましたが、解決まで時間を要しました

Check with SELinux Permissive mode

  • シェルコマンドmysqlにて、データベースへのアクセスに問題ないことを確認できましたので、SELinuxによる否認であろうと推察しました
  • Permissiveモードに変更して検証します
# Permissiveモードへ変更
$ sudo setenforce 0

# モードを確認
$ sudo getenforce
Permissive
  • 500エラーは解消し、サイトを確認することができました
  • 記事の更新も問題ありません
  • サイトが表示されない原因は、SELinuxの設定によるものと判断できました
  • Enforcingモードに戻します
# Enforcingモードへ変更
$ sudo setenforce 1

# モードを確認
$ sudo getenforce
Enforcing

Check SELinux audit log

  • SELinuxの監査ログを確認します
$ sudo ausearch -m avc -ts recent
----
time->Mon Oct 20 18:55:47 2025
type=PROCTITLE msg=audit(1760954147.328:8224940): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1760954147.328:8224940): arch=c000003e syscall=42 success=yes exit=0 a0=6 a1=7ffd08f76ce0 a2=1b a3=555901882c50 items=0 ppid=1292444 pid=1447061 auid=42949672
95 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1760954147.328:8224940): avc:  denied  { connectto } for  pid=1447061 comm="php-fpm" path="/var/lib/mysql/mysql.sock" scontext=system_u:system_r:httpd_t:s0 tconte
xt=system_u:system_r:unconfined_service_t:s0 tclass=unix_stream_socket permissive=0
----
  • type=AVC以降の情報により、php-fpmがmysql.sockへの接続を拒否されていることが解ります

Check SELinux Context and Boolarn

  • SELinuxのContextとブール値に問題ないかを確認します
Boolarn
  • mysqlとhttpd関連のブール値を確認します
# mysql関連のブール値を確認します
# 今回、特に変更していません
$ sudo getsebool -a | grep mysql
mysql_connect_any --> off
mysql_connect_http --> off
selinuxuser_mysql_connect_enabled --> off

# httpd関連のブール値 onを確認します
$ sudo getsebool -a | grep httpd | grep "> on"
httpd_builtin_scripting --> on
httpd_can_network_connect --> on
httpd_can_sendmail --> on
httpd_enable_cgi --> on
httpd_execmem --> on
httpd_unified --> on

# httpd_can_network_connect_dbはデフォルトでオフです
# MariaDBアップグレード前はオフで問題なかったはずですが、オンに変更しています
# -P: 再起動後も設定を永続化
$ sudo setsebool -P httpd_can_network_connect_db on

# 再度、httpd関連のブール値 onを確認します
$ sudo getsebool -a | grep httpd | grep "> on"
httpd_builtin_scripting --> on
httpd_can_network_connect --> on
httpd_can_network_connect_db --> on
httpd_can_sendmail --> on
httpd_enable_cgi --> on
httpd_execmem --> on
httpd_unified --> on
Context
  • mysql.sockのコンテキストを確認します
# mysql.sockのコンテキストを確認します
$ ls -laZ /var/lib/mysql/ | grep mysql.sock
srwxrwxrwx.  1 mysql mysql system_u:object_r:mysqld_db_t:s0             0 Oct 20 18:53 mysql.sock

# Webからmysql.sockは別のコンテキストである情報を得ました
# restoreconコマンドにて既定のコンテキストへの修正を試行します
$ sudo restorecon -v /var/lib/mysql/mysql.sock 
Relabeled /var/lib/mysql/mysql.sock from system_u:object_r:mysqld_db_t:s0 to system_u:object_r:mysqld_var_run_t:s0

# mysql.sockのコンテキストはmysqld_db_tではなくmysqld_var_run_tのようです
$ ls -laZ /var/lib/mysql/ | grep mysql.sock
srwxrwxrwx.  1 mysql mysql system_u:object_r:mysqld_var_run_t:s0         0 Oct 20 18:53 mysql.sock
# ただし、mariadbを再起動すると、再作成されるmysql.sockのコンテキストはmysqld_db_tに戻ってしまいます

# 念の為、mysqld_var_run_tを確認します
# Socketのパスも問題ないようです
$ sudo semanage fcontext -l | grep mysqld_var_run_t
/var/lib/mysql/mysql\.sock                         socket             system_u:object_r:mysqld_var_run_t:s0 
/var/run/mariadb(/.*)?                             all files          system_u:object_r:mysqld_var_run_t:s0 
/var/run/mysql(/.*)?                               all files          system_u:object_r:mysqld_var_run_t:s0 
/var/run/mysqld(/.*)?                              all files          system_u:object_r:mysqld_var_run_t:s0 

# httpd_tからmysqld_var_run_tへの許可設定を確認します
# 下から2行目、問題ないようです
$ sudo sesearch -A -s httpd_t -t mysqld_var_run_t
allow domain file_type:blk_file map; [ domain_can_mmap_files ]:True
allow domain file_type:chr_file map; [ domain_can_mmap_files ]:True
allow domain file_type:file map; [ domain_can_mmap_files ]:True
allow domain file_type:lnk_file map; [ domain_can_mmap_files ]:True
allow httpd_t file_type:dir { getattr open search };
allow httpd_t file_type:filesystem getattr;
allow httpd_t mysqld_var_run_t:sock_file { append getattr open write };
allow nsswitch_domain pidfile:dir { getattr open search };

Solved by audit2allow

  • Linux初心者のわたくしには、上記までの確認が限界で、SELinuxがどう拒否しているのか、何故、アップグレード後拒否されてしまったのか、理由を確認することが出来ませんでした
  • 最終的に、監査ログから許可設定モジュールを作成するaudit2allowを使用して、php-fpmのmysql.sockへの接続を許可し、今回はとりあえず解決としました
  • 結果から言えば、さっさとaudit2allowに頼っていれば済んだわけですが、設定ミスがないか確認したうえでaudit2allowを使用すべきとされているそうです
  • ただし、ターゲットmysql.sockのコンテキストunconfined_service_tは制限のないドメインであり、これを許可する設定はリスクを抱えた設定といえます
# 監査ログを解析して解決策を提示してもらいます
# -a すべての監査ログを読む
# -w 人間が読むことができる説明を表示する
$ sudo audit2allow -a -w
type=AVC msg=audit(1761109194.805:8289894): avc:  denied  { connectto } for  pid=1532408 comm="php-fpm" path="/var/lib/mysql/mysql.sock" scontext=system_u:system_r:httpd_t:s0 tcontext=system_
u:system_r:unconfined_service_t:s0 tclass=unix_stream_socket permissive=1
        Was caused by:
                Missing type enforcement (TE) allow rule.

                You can use audit2allow to generate a loadable module to allow this access.

# 以下、同じログの繰り返しのため省略しております

# -w オプションなしで実行すると、拒否されたアクセスを許可するType Enforcementルールの一覧が表示されます
$ sudo audit2allow -a


#============= httpd_t ==============
allow httpd_t unconfined_service_t:unix_stream_socket connectto;

#============= init_t ==============
allow init_t mysqld_db_t:file { open read };

# カスタムポリシーモジュール(my_mysql_sockと命名)を作成します
$ sudo audit2allow -a -M my_mysql_sock
[sudo] password for administrator: 
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i my_mysql_sock.pp

# モジュールをインストールします
$ sudo semodule -i my_mysql_sock.pp

Is this a MariaDB bug?

  • 更に、Web情報をあたっている内に、次のページに出くわしました
  • plesk.com | Database connections initiated using PHP fail when SELinux is enabled on a Plesk for Linux server
  • 上記ページで、次のページを引用し、わたくしが対面しているトラブルと同様のトラブルに対し、MariaDBのバグであると説明しています
  • MariaDB Jira | SElinux incorrect label for server socket
  • 上記ページを確認し、mysql.sockのコンテキストが再起動の度にmysqld_db_tへ戻ってしまう現象がバグであることが理解できました
    • もっとも、mysqld_var_run_tに戻しただけでは、解決しないのですが
  • また、plesk.comが提示している解決方法は残念ながら、当サーバーの環境では効果ありませんでした
  • MariaDB Jiraの報告では、MariaDB 11.8.4で解決とありますが、公式バージョンとしてリリースされていません
  • わたくしのスキルでは、暫定的にaudit2allows作成のモジュールで対処するしかないようです
# 作成したmariadb.repoで取得可能なバージョンの確認
$ sudo dnf --showduplicates list mariadb-server
Last metadata expiration check: 3:33:10 ago on Wed 29 Oct 2025 04:31:15 AM JST.
Installed Packages
MariaDB-server.x86_64                                          11.8.3-1.el9                                                @mariadb 
Available Packages
MariaDB-server.x86_64                                          11.7.2-1.el9                                                mariadb  
MariaDB-server.x86_64                                          11.8.2-1.el9                                                mariadb  
MariaDB-server.x86_64                                          11.8.3-1.el9                                                mariadb  
mariadb-server.x86_64                                          3:10.5.27-1.el9_5                                           appstream

Reference