MariaDB最新バージョンをLinuxに手動インストールする|公式tarballを使ったバージョン固定の運用方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Linuxtips > データーベース管理 > MariaDB最新バージョンをLinuxに手動インストールする|公式tarballを使ったバージョン固定の運用方法
「MariaDBの最新バージョンを本番環境に入れたい。でもAPT/DNFのリポジトリ経由だとバージョンが古かったり、パッケージが急にアップデートされて動作が変わったりして困る」
「本番環境と検証環境で完全に同じバージョンを固定したい」

こういった要件には、MariaDB公式が提供するBinary Distribution(tarball形式)を使った手動インストールが最も確実な方法です。パッケージマネージャーを一切使わないため、任意のバージョンを完全にコントロールできます。

この記事では、MariaDB最新バージョンの公式tarballをLinuxサーバーへ手動インストールする手順を、ディレクトリ設計・systemdサービス登録・初期セキュリティ設定・バージョン切り替え運用まで解説します。APT/DNFリポジトリ経由のインストール手順は別記事で解説しているため、本記事ではtarball手動インストールに絞ります。

この記事のポイント

・公式tarballを /usr/local/mariadb-XX.X.X/ に展開しシンボリックリンクで切り替える設計
・mariadb-install-db でデータディレクトリを初期化し、systemd Unit ファイルで起動管理する
・バージョン更新はシンボリックリンクの張り替えだけ、ロールバックも同様に即座にできる
・パッケージマネージャー不使用なので複数バージョン共存・厳密なバージョン固定が可能


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

なぜtarball手動インストールを選ぶのか

APT/DNFリポジトリ経由のインストールは手軽ですが、次のような場面では限界があります。

・特定のマイナーバージョンを固定したい:リポジトリは最新パッチ版しか提供しないため、「11.4.3だけを使い続ける」といった指定ができない
・OSのEOLに縛られたくない:OS標準リポジトリのMariaDBが古くても、tarballなら最新版を自由に導入できる
・同一サーバーに複数バージョンを共存させたい:移行作業中に旧版と新版を並行稼働させる場合

一方、デメリットはセキュリティパッチの自動適用がないため、リリース情報を定期的に自分でチェックして手動アップデートする運用が必須になる点です。

動作確認環境と依存パッケージの準備

本記事の手順は以下の環境で確認しています。

# 動作確認環境 Rocky Linux 9.4 (x86_64) MariaDB 11.4.5(tarball: mariadb-11.4.5-linux-systemd-x86_64.tar.gz) systemd 252

1. 依存ライブラリのインストール

MariaDB Generic Linux版はほぼスタティックリンクされていますが、libncursesやlibaioなど基本ライブラリが必要です。

# RHEL / Rocky Linux 系 sudo dnf install -y ncurses-compat-libs libaio numactl-libs # Ubuntu / Debian 系 sudo apt install -y libncurses5 libaio1 libnuma1

公式tarballのダウンロードと配置

1. MariaDB公式サイトからtarballを取得する

MariaDB公式のダウンロードページでバージョンを選び、「Linux Generic(Systemd)」のtar.gzリンクを取得します。ここでは11.4系LTSの11.4.5を例に使います。実際のURLはリリース時期によって変わるため、必ず公式サイトで最新URLを確認してください。

cd /usr/local/src # "Linux Generic (glibc_2.28) (Systemd)" の tar.gz を取得する sudo curl -LO https://downloads.mariadb.org/rest-api/mariadb/11.4.5/mariadb-11.4.5-linux-systemd-x86_64.tar.gz # チェックサムを確認する(公式サイトのsha256と照合する) sha256sum mariadb-11.4.5-linux-systemd-x86_64.tar.gz

2. tarballを展開して /usr/local に配置する

tarコマンドでの展開後、シンボリックリンクを使ってバージョンを管理します。tarコマンドのオプション詳細はtar コマンドの実用例を参照してください。

# /usr/local に展開する(バージョン付きディレクトリが作成される) sudo tar -xzf /usr/local/src/mariadb-11.4.5-linux-systemd-x86_64.tar.gz -C /usr/local/ ls /usr/local/ | grep mariadb # mariadb-11.4.5-linux-systemd-x86_64 # シンボリックリンクを張る # /usr/local/mysql を基点にすることでバージョン切り替えが容易になる sudo ln -s /usr/local/mariadb-11.4.5-linux-systemd-x86_64 /usr/local/mysql ls -la /usr/local/mysql # lrwxrwxrwx. 1 root root 47 Sep 29 10:12 /usr/local/mysql -> /usr/local/mariadb-11.4.5-linux-systemd-x86_64

MariaDBシステムユーザーの作成とデータディレクトリの初期化

1. mysqlユーザーとデータディレクトリを準備する

# mysqlグループとシステムユーザーを作成する(ログインシェルなし) sudo groupadd mysql sudo useradd -r -g mysql -s /sbin/nologin mysql # データディレクトリを作成して所有者を設定する sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql sudo chmod 750 /var/lib/mysql

2. mariadb-install-dbでデータディレクトリを初期化する

sudo /usr/local/mysql/scripts/mariadb-install-db --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql # 正常終了時の出力例(抜粋) # Two all-privilege accounts were created. # One is root@localhost, it has no password, but you need to # be root (or use sudo) to connect. Use, for example, sudo mysql # # The second is mysql@localhost, it is usable without password too. # ... # You can start the MariaDB daemon with: # /usr/local/mysql/bin/mariadbd-safe --datadir='/var/lib/mysql'

systemdサービスの登録と起動確認

1. systemd Unitファイルを配置する

公式tarballには support-files/ 配下にsystemd用サービスファイルが同梱されています。

ls /usr/local/mysql/support-files/*.service # /usr/local/mysql/support-files/mariadb.service # /usr/local/mysql/support-files/mariadb@.service # systemdのディレクトリにコピーする sudo cp /usr/local/mysql/support-files/mariadb.service /etc/systemd/system/mariadb.service # サービスファイルのパスを確認する(/usr/local/mysql を参照しているか) sudo grep -E 'ExecStart|EnvironmentFile|PIDFile' /etc/systemd/system/mariadb.service

サービスファイル内のパスがシンボリックリンク /usr/local/mysql を参照していない場合は、該当行を編集してください。

2. MariaDBを起動して自動起動を有効にする

sudo systemctl daemon-reload sudo systemctl enable --now mariadb # 起動状態を確認する sudo systemctl status mariadb # * mariadb.service - MariaDB 11.4.5 database server # Loaded: loaded (/etc/systemd/system/mariadb.service; enabled; preset: disabled) # Active: active (running) since Mon 2026-09-29 10:15:42 JST; 3s ago # Main PID: 12834 (/usr/local/mysql/bin/mariadbd) # バージョンを確認する /usr/local/mysql/bin/mysql -V # /usr/local/mysql/bin/mysql Ver 15.1 Distrib 11.4.5-MariaDB, for Linux (x86_64) using EditLine wrapper

初期セキュリティ設定(mariadb-secure-installation)

tarball経由でインストールした場合も、パッケージ版と同様にセキュリティ初期化スクリプトを実行します。

sudo /usr/local/mysql/bin/mariadb-secure-installation

対話形式で以下を設定してください。

・rootパスワードの設定:空パスワードは絶対に設定しない
・匿名ユーザーの削除:「Remove anonymous users?」→ Y
・リモートrootログインの禁止:「Disallow root login remotely?」→ Y
・testデータベースの削除:「Remove test database and access to it?」→ Y
・権限テーブルの再ロード:「Reload privilege tables now?」→ Y

PATH設定とmy.cnfの配置

1. 全ユーザー向けのPATH設定

# /etc/profile.d/ に設定ファイルを置く echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee /etc/profile.d/mariadb.sh sudo chmod 644 /etc/profile.d/mariadb.sh source /etc/profile.d/mariadb.sh # 確認する which mysql # /usr/local/mysql/bin/mysql

2. my.cnfを /etc/my.cnf に配置する

# サンプルをコピーして基本設定を確認する sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf # datadir・basedir・socketパスを明示的に設定する sudo tee -a /etc/my.cnf <<'EOF' [mysqld] basedir=/usr/local/mysql datadir=/var/lib/mysql socket=/tmp/mysql.sock EOF

バージョン切り替えの運用手順

tarball手動インストールの最大のメリットは、シンボリックリンクの張り替えだけでバージョンを切り替えられる点です。

# 1. 新バージョンのtarballを展開する(旧バージョンはそのまま残す) sudo tar -xzf /usr/local/src/mariadb-11.4.6-linux-systemd-x86_64.tar.gz -C /usr/local/ # 2. MariaDBを停止する sudo systemctl stop mariadb # 3. シンボリックリンクを張り替える sudo rm /usr/local/mysql sudo ln -s /usr/local/mariadb-11.4.6-linux-systemd-x86_64 /usr/local/mysql # 4. 起動してアップグレード処理を実行する sudo systemctl start mariadb sudo /usr/local/mysql/bin/mariadb-upgrade -u root -p # 5. バージョンを確認する mysql -V # /usr/local/mysql/bin/mysql Ver 15.1 Distrib 11.4.6-MariaDB, for Linux (x86_64)

ロールバックが必要な場合は、古いディレクトリがそのまま残っているため、シンボリックリンクを旧バージョンに戻すだけです。

MariaDB起動後に3306番ポートで正常にリッスンしているかは、ssコマンドで確認できます。ssコマンドの詳しい使い方はLinux ポート確認の全コマンドを参照してください。

ss -tlnp | grep 3306 # LISTEN 0 80 0.0.0.0:3306 0.0.0.0:* users:(("mariadbd",pid=12834,fd=21))

トラブルシュート・エラー対処

「Can't connect to local MySQL server through socket」が出た場合

my.cnfのsocketパスとmariadb.serviceのソケットパスが一致していない場合に発生します。

# my.cnf のsocketパスを確認する grep socket /etc/my.cnf # socket=/tmp/mysql.sock # クライアントからソケットパスを明示して接続確認する mysql -u root -p -S /tmp/mysql.sock

「error while loading shared libraries: libncurses.so.5」が出た場合

NCursesの互換ライブラリが不足しています。

# RHEL / Rocky Linux 系 sudo dnf install -y ncurses-compat-libs # Ubuntu / Debian 系 sudo apt install -y libncurses5

「Permission denied」でmariadb-install-dbが失敗する場合

データディレクトリの所有者を確認してください。

ls -la /var/lib/ | grep mysql # drwxr-x---. 2 mysql mysql 4096 Sep 29 10:10 mysql # 所有者が違う場合は修正する sudo chown -R mysql:mysql /var/lib/mysql sudo chmod 750 /var/lib/mysql

本記事のまとめ

MariaDB最新バージョンを公式tarballでLinuxへ手動インストールする主な手順を整理します。

やること 主なコマンド・ファイル
tarball取得・展開・配置 curl -LO + tar -xzf -C /usr/local/
シンボリックリンク設定 ln -s /usr/local/mariadb-XX.X.X /usr/local/mysql
mysqlユーザー作成 groupadd mysql / useradd -r -g mysql
データディレクトリ初期化 mariadb-install-db --user=mysql --basedir=...
systemdサービス登録・起動 cp support-files/mariadb.service → systemctl enable --now mariadb
初期セキュリティ設定 mariadb-secure-installation
バージョン更新 rm /usr/local/mysql + ln -s 新バージョンdir + mariadb-upgrade
tarball手動インストールはパッケージマネージャーに依存しない自由度がある反面、セキュリティパッチの自動適用がないため定期的な確認と計画的なアップデートが求められます。こうしたサーバー運用の「確認・管理サイクル」を体系的に学びたい方は、Linux Master Pro Seminarをご覧ください。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
20年以上・3,100名超の指導実績を持つ現役エンジニアが教えるLinux Master Pro Seminarでハンズオン形式で学べます。
>> セミナー詳細・お申し込みはこちら

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。