「本番環境と検証環境で完全に同じバージョンを固定したい」
こういった要件には、MariaDB公式が提供するBinary Distribution(tarball形式)を使った手動インストールが最も確実な方法です。パッケージマネージャーを一切使わないため、任意のバージョンを完全にコントロールできます。
この記事では、MariaDB最新バージョンの公式tarballをLinuxサーバーへ手動インストールする手順を、ディレクトリ設計・systemdサービス登録・初期セキュリティ設定・バージョン切り替え運用まで解説します。APT/DNFリポジトリ経由のインストール手順は別記事で解説しているため、本記事ではtarball手動インストールに絞ります。
この記事のポイント
・公式tarballを /usr/local/mariadb-XX.X.X/ に展開しシンボリックリンクで切り替える設計
・mariadb-install-db でデータディレクトリを初期化し、systemd Unit ファイルで起動管理する
・バージョン更新はシンボリックリンクの張り替えだけ、ロールバックも同様に即座にできる
・パッケージマネージャー不使用なので複数バージョン共存・厳密なバージョン固定が可能
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜ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 |
20年以上・3,100名超の指導実績を持つ現役エンジニアが教えるLinux Master Pro Seminarでハンズオン形式で学べます。
>> セミナー詳細・お申し込みはこちら
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:LinuxサーバーのMariaDBバージョン確認手順|mysql -Vとステータス変数で詳細情報を取得する
- この記事の属するカテゴリ:データーベース管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます