1. MariaDBとは?
MariaDBの概要と特徴
MariaDB(マリアディービー)は、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。MySQLをベースに開発されており、その互換性の高さから、多くのシステムやアプリケーションで採用されています。
もともとは、MySQLがOracle社に買収されたことをきっかけに、開発者の一部が独立してMariaDBプロジェクトを立ち上げました。そのため、MariaDBはMySQLと同様のコマンド体系やデータ構造を持ちつつ、オープン性と透明性を重視した設計が特徴です。
MariaDBは無料で利用でき、商用・非商用問わず幅広い用途に対応しています。特に、Linuxサーバー環境での導入実績が豊富であり、安定性・パフォーマンス・セキュリティの面でも高く評価されています。
MySQLとの違い
MariaDBとMySQLは非常によく似ており、多くのコマンドや設定ファイルはそのまま使うことができます。ただし、いくつかの重要な違いがあります。
- ライセンスの違い
MySQLはOracle社が開発・管理しているため、商用利用時にはライセンスの制約が発生する場合があります。一方、MariaDBはGPL(GNU General Public License)に基づいており、より自由に利用できます。 - 開発スピードとコミュニティ主導
MariaDBはコミュニティ主導で積極的に開発されており、新機能の導入が早い傾向にあります。特にエンタープライズ向け機能(ストレージエンジンの選択肢やパフォーマンス最適化など)が充実しています。 - 拡張性と互換性
MariaDBはMySQLとの高い互換性を保ちつつも、独自のストレージエンジン(Aria、ColumnStoreなど)を提供し、用途に応じた柔軟な運用が可能です。ただし、バージョンが進むにつれて互換性に差が出る場面もあるため、移行時には注意が必要です。
MariaDBを選ぶメリット
Linux環境でデータベースを導入する際、MariaDBは以下のようなメリットがあります:
- シンプルな構成でインストールが容易
- 軽量かつ高速な動作
- 大規模データ処理にも対応できるスケーラビリティ
- 長期的に安定した運用が可能
- 世界中の開発者による豊富なナレッジとサポート情報
これらの理由から、個人の開発環境から企業の本番環境まで、幅広くMariaDBが選ばれています。
2. インストール前の準備
MariaDBをLinux環境にインストールする前に、いくつか確認すべきポイントや準備作業があります。このステップを飛ばすと、後々のトラブルの原因になることもあるため、事前準備は非常に重要です。
システム要件の確認
MariaDBは軽量かつ高速なデータベースですが、動作には最低限のシステム要件があります。以下は一般的な要件の目安です(バージョンや使用状況により異なります):
- OS:Ubuntu、Debian、CentOS、RHELなどのLinux系ディストリビューション
- CPU:1GHz以上(複数コア推奨)
- メモリ:512MB以上(1GB以上を推奨)
- ストレージ:空き容量1GB以上(データ量により適宜調整)
- ネットワーク:パッケージの取得やアップデートのため、インターネット接続が必要
なお、古いLinuxディストリビューションではMariaDBの最新バージョンが対応していない場合があります。使用しているLinuxのバージョンを確認し、必要に応じてリポジトリを追加するなどの対応が必要です。
必要なパッケージの確認と更新
MariaDBのインストールには、OS標準のパッケージマネージャ(APTやYUMなど)を利用します。事前にシステムを最新の状態にしておくことで、依存関係のトラブルを避けることができます。
以下はUbuntu/Debian系の場合の一例です:
sudo apt update
sudo apt upgrade -y
CentOS/RHEL系では以下のように実行します:
sudo yum update -y
また、以下のパッケージがインストールされているかを確認してください(インストールされていない場合は追加):
curl
:MariaDBのリポジトリ追加時に利用gnupg
:署名キーの確認に使用software-properties-common
(Ubuntuの場合):PPA管理に必要
MariaDBの公式リポジトリを利用するかの検討
多くのLinuxディストリビューションでは、標準のパッケージリポジトリにもMariaDBが含まれていますが、提供されているバージョンが古いことがあります。
常に最新安定版を使用したい場合は、MariaDBの公式リポジトリを追加する方法もあります。次のセクションでOSごとの手順を紹介しますが、インストール時にどのバージョンを利用するかを事前に決めておくとスムーズです。
3. 主要ディストリビューション別インストール手順
MariaDBはさまざまなLinuxディストリビューションで利用可能ですが、インストール方法には若干の違いがあります。このセクションでは、代表的な3つのディストリビューション(Ubuntu、CentOS、Debian)ごとに、MariaDBのインストール手順を詳しく解説します。
UbuntuでのMariaDBインストール
UbuntuではAPTパッケージマネージャを使ってMariaDBをインストールします。ここでは、Ubuntu 20.04 / 22.04 LTSを対象としています。
1. パッケージリストの更新
sudo apt update
2. MariaDBのインストール
sudo apt install mariadb-server -y
このコマンドでMariaDB本体および関連する依存パッケージが自動的にインストールされます。
3. サービスの起動と有効化
sudo systemctl start mariadb
sudo systemctl enable mariadb
4. 動作確認
sudo systemctl status mariadb
「active (running)」と表示されれば、正常に起動しています。
CentOSでのMariaDBインストール
CentOS 7およびCentOS Stream 8では、YUMまたはdnfを使用します。標準のリポジトリでは古いバージョンが提供されているため、公式リポジトリを追加するのが一般的です。
1. 公式リポジトリの追加(例:MariaDB 10.6)
sudo vi /etc/yum.repos.d/MariaDB.repo
以下を貼り付けて保存:
[mariadb]
name = MariaDB
baseurl = https://downloads.mariadb.com/MariaDB/mariadb-10.6/yum/centos7-amd64
gpgkey=https://downloads.mariadb.com/MariaDB/MariaDB-Server-GPG-KEY
gpgcheck=1
※環境に応じてバージョンやOSに合わせて調整してください。
2. パッケージのインストール
sudo yum install mariadb-server -y
またはCentOS Stream 8以降では:
sudo dnf install mariadb-server -y
3. サービスの起動と有効化
sudo systemctl start mariadb
sudo systemctl enable mariadb
DebianでのMariaDBインストール
DebianもAPTを使用しますが、公式リポジトリではなくMariaDBの公式リポジトリを利用することで、最新の安定版を導入できます。
1. 依存パッケージのインストール
sudo apt install curl software-properties-common gnupg -y
2. MariaDBのリポジトリ追加(例:Debian 11 “Bullseye”)
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
3. インストール
sudo apt update
sudo apt install mariadb-server -y
4. サービスの起動と有効化
sudo systemctl start mariadb
sudo systemctl enable mariadb

4. 文字コードの設定
MariaDBを日本語環境で使用する際に注意すべき重要なポイントの一つが、文字コード(エンコーディング)の設定です。特に日本語はマルチバイト文字を含むため、誤った設定のまま運用を始めると、文字化けやデータ破損といった問題につながることがあります。
日本語環境における推奨文字コード:UTF-8
MariaDBでは、utf8mb4
という文字コードが推奨されています。これは従来の utf8
よりも拡張性が高く、絵文字などの4バイト文字にも対応しているため、日本語のみならず多言語環境にも強い設計です。
MySQL系のデフォルト設定では latin1
や utf8
になっていることがあり、それらのままでは不具合が起こる可能性があります。そのため、インストール直後に utf8mb4
への設定変更を行いましょう。
設定ファイルの編集方法(my.cnf
)
MariaDBの設定ファイルは通常 /etc/mysql/my.cnf
または /etc/my.cnf
にあります。以下のように [client]
、[mysqld]
セクションに追記・編集します。
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4 collation-server = utf8mb4_general_ci
設定変更後はMariaDBを再起動して反映させます:
sudo systemctl restart mariadb
設定反映の確認
MariaDBに接続し、設定が反映されているかを確認します。
sudo mariadb
接続後、以下のコマンドを実行します:
SHOW VARIABLES LIKE 'character\_set%';
期待される出力例:
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_results utf8mb4
character_set_server utf8mb4
このようになっていれば、文字コードの設定は正しく反映されています。
注意点:既存データの文字コード
既に作成されたデータベースやテーブルがある場合、それらの文字コードは自動では変わりません。必要に応じて、以下のようにALTER文で個別に変更する必要があります:
ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
同様に、テーブルやカラム単位で変更も可能です。
5. セキュリティ設定
MariaDBをインストールした直後の状態では、セキュリティが十分ではありません。運用前に最低限のセキュリティ設定を行っておくことで、不正アクセスや情報漏えいのリスクを軽減できます。このセクションでは、MariaDBの基本的なセキュリティ設定方法を紹介します。
mysql_secure_installation
の実行
MariaDBには、インストール直後に実行すべき初期セキュリティ強化用スクリプトが用意されています。それが mysql_secure_installation
です。
以下のコマンドで実行できます:
sudo mysql_secure_installation
実行すると、いくつかの質問が順番に表示されます。それぞれの選択肢について説明します。
- root パスワードの設定(または更新)
→ MariaDBの管理者ユーザー「root」にパスワードを設定します。強固なパスワードを使用してください。 - 匿名ユーザーの削除
→ 初期状態では「anonymous(匿名)」ユーザーが存在します。これは不要で危険なため、削除推奨です。 - リモートからのrootログインを禁止
→ 外部ネットワークから直接rootでアクセスできる状態は極めて危険です。基本的には禁止に設定します。 - testデータベースの削除
→ テスト用に作成されている「test」データベースも不要なら削除します。削除推奨です。 - 権限テーブルのリロード
→ 上記の変更を即時反映させるために行います。「はい」で確定します。
これらの質問にすべて答えることで、初期状態におけるMariaDBのセキュリティが大幅に強化されます。
ファイアウォールの設定(必要に応じて)
MariaDBは通常ポート3306で通信します。このポートを開放するかどうかは、システムの利用用途によります。
- ローカル環境や単体のサーバーで使用する場合
→ 3306ポートは閉じたままで問題ありません。 - 外部からアクセスさせる場合(別サーバーのアプリと接続など)
→ 必要なIPアドレスだけに限定して開放する設定を行います。
例:UbuntuのUFWを使ったポート制限の一例
sudo ufw allow from 192.168.0.10 to any port 3306
root以外のユーザー作成(推奨)
運用では、管理者ユーザー「root」ではなく、専用のユーザーアカウントを作成して利用するのが望ましいです。以下は例です:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
アプリケーションごとにユーザーを分けることで、万が一情報が漏洩した際の影響を最小限に抑えることができます。
6. 動作確認
MariaDBのインストールと初期設定、セキュリティ対策が完了したら、最後に正しく動作しているかどうかを確認しましょう。このセクションでは、MariaDBへの接続確認と、基本的なSQLコマンドの実行方法について解説します。
MariaDBへの接続
インストール後、以下のコマンドでMariaDBに接続できるかを確認します。
sudo mariadb
または、ユーザーとパスワードを指定してログインする場合:
mariadb -u root -p
パスワードの入力を求められたら、mysql_secure_installation
で設定したものを入力してください。
ログインに成功すると、次のようなプロンプトが表示されます:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.6.16-MariaDB MariaDB Server
これが表示されれば、MariaDBは正常に起動し、接続できていることが確認できます。
データベースの作成
続いて、簡単なテストとしてデータベースを作成してみます。
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
正常に実行されれば、データベースは問題なく作成されています。
作成したデータベースの一覧を確認:
SHOW DATABASES;
testdb
が表示されていれば成功です。
テーブルの作成とデータ挿入
テスト用のテーブルを作成し、データを挿入してみましょう。
USE testdb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO users (name, email) VALUES ('田中太郎', 'taro@example.com');
データの取得
挿入したデータを確認するには、以下のクエリを実行します。
SELECT * FROM users;
出力結果に 田中太郎
の情報が表示されれば、データベースは正しく動作していると判断できます。
サーバー情報の確認
MariaDBのバージョンなどの基本情報を確認したい場合は、以下のコマンドを実行します:
STATUS;
これにより、接続状態、サーバーバージョン、文字コード設定などの詳細が表示されます。
7. FAQ(よくある質問)
MariaDBをLinux環境にインストール・運用していく中で、多くの方が直面する疑問やトラブルについて、事前に対処法を知っておくと安心です。ここでは、初心者から中級者までが特によく検索するポイントをFAQ形式でまとめました。
Q1. MariaDBのバージョンを確認するにはどうすればいいですか?
MariaDBに接続後、以下のコマンドを実行することで確認できます。
SELECT VERSION();
または、コマンドラインから以下のように直接確認することも可能です:
mariadb --version
出力例:
mariadb Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64)
Q2. インストール中に「パッケージが見つかりません」と表示される場合の対処法は?
以下をチェックしてみてください:
- パッケージリストが最新でない
→sudo apt update
またはsudo yum update
を実行してから再試行 - MariaDBの公式リポジトリが正しく追加されていない
→ リポジトリ設定ファイル(/etc/apt/sources.list.d/
や/etc/yum.repos.d/
)を確認 - ディストリビューションとMariaDBのバージョンが適合していない
→ MariaDB公式の Downloadページ で対応バージョンを再確認
Q3. MariaDBをアンインストールするには?
Ubuntu/Debian系の場合:
sudo apt remove --purge mariadb-server mariadb-client -y
sudo apt autoremove -y
CentOS/RHEL系の場合:
sudo yum remove mariadb-server -y
その後、データや設定ファイルも削除したい場合は以下も実行
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf /etc/mysql
※必要なデータがあれば、削除前に必ずバックアップを取ってください。
Q4. データベースのバックアップと復元はどうすればいい?
バックアップ(ダンプファイルの作成):
mysqldump -u root -p your_database > backup.sql
復元(リストア):
mysql -u root -p your_database < backup.sql
この方法はシンプルかつ一般的で、MariaDBの移行や障害対策において非常に有用です。
Q5. MariaDBに外部から接続できないのはなぜ?
以下の原因が考えられます:
bind-address
が127.0.0.1
に設定されている
→/etc/mysql/my.cnf
または/etc/my.cnf
でbind-address = 0.0.0.0
に変更(セキュリティに注意)- ファイアウォールでポート3306が閉じている
→sudo ufw allow 3306
などでポート開放 - ユーザーが外部接続を許可されていない
→user@'%'
の形式でユーザーを作成する必要があります