当方のデータベースサーバーを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の場合次のとおりです
- Joomla! Programmers Documentation | Technical Requirements
- Recommended: 12.0
- Supported: 10.6
- Minimum: 10.4
- 当サーバーにインストールされている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の2023年6月より早く到達することになります
Reference
Steps
- データバックアップ
- MariaDB 11.8 (LTS)用リポジトリ作成
- mysqld停止
- MaliaDB 10.5の削除
- MariaDB 11.8 のインストール
- データアップグレード
- mysqd起動
Backup of Database
- MariaDBのバックアップには2つ手段があり、今回は下記Aを選択しました
- mariadb-dump
- MariaDB | Documentation | mariadb-dump
- 今回、公式サイトの勉強不足でmariadb-dumpのシンボリックリンクであるmysqldumpを実行しています
- mariadb-backup
- MariaDB | Documentation | mariadb-backup
- 公式サイトではmariadb-backupを推奨しているようです
- mariadb-dump
- 念を入れて、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
- MariaDB | Download MariaDB Server Repositories | RHEL 9 / MariaDB 11.8
- オフィシャルサイトからリポジトリリストをコピーします
- ディストリビューションとバージョンを選択します

- リポジトリリスト右上の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.
- FEEDBACKプラグインはデフォルトでdisabledです
- MariaDB | Documentation | Feedback Plugin
- [Note] Plugin 'wsrep-provider' is disabled.
- MariaDB Galera Clusterという全ノードでの読み書き処理が可能な高可用性アーキテクチャのプラグインですが、当サーバーでは非運用です
- MariaDB | Documentation | MariaDB Galera Cluster
- これで一連の作業は完了です
# 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
# 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のようです
# ただし、mariadbを再起動すると、再作成されるmysql.sockのコンテキストはmysqld_db_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
# 念の為、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作成のモジュールで対処するしかないようです