MariaDB を Ubuntu にインストールして初期設定する手順メモ
MariaDB とは
MariaDB は MySQL から派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。MySQL の創業者である Michael “Monty” Widenius 氏が中心となり、2009年にフォークして開発が始まりました。
Ubuntu を含む多くの Linux ディストリビューションで標準パッケージとして提供されており、MySQL と高い互換性を持ちながらも、GPL ライセンスのみで完全にオープンソースであることが特徴です。
MySQL との違い
MariaDB は MySQL から派生していますが、バージョンが上がるにつれて独自の機能が増えており、完全な互換性とは言い切れない部分もあります。主な違いをまとめます。
| 項目 | MySQL | MariaDB |
|---|---|---|
| 開発元 | Oracle | MariaDB Foundation |
| ライセンス | GPL + 商用(デュアル) | GPL のみ |
| スレッドプール | Enterprise 版のみ | Community 版で利用可能 |
| ストレージエンジン | InnoDB 中心 | Aria, ColumnStore, Spider など多数 |
| JSON 型 | ネイティブ対応 | LONGTEXT で代替(10.2 以降) |
| レプリケーション | GTID, Group Replication | Galera Cluster(マルチマスター対応) |
| Ubuntu での扱い | 別途リポジトリ追加が必要な場合あり | 標準リポジトリに含まれる |
移行の互換性
MySQL → MariaDB への移行は比較的容易です。データファイルやクライアントプロトコル、ポート(3306)が共通のため、MySQL をアンインストールして MariaDB をインストールするだけで動作する場合がほとんどです。
ただし、MariaDB 10.x 以降は独自機能が増えており、MariaDB 独自機能を使っている場合は MySQL に戻すのが難しくなる可能性があります。
インストール手順(Ubuntu 24.04)
1. システムの更新
sudo apt update && sudo apt upgrade -y
2. MariaDB のインストール
Ubuntu の標準リポジトリに含まれているため、追加リポジトリの追加は不要です。
sudo apt install mariadb-server mariadb-client -y
mariadb-server がサーバー本体、mariadb-client がコマンドラインクライアントです。
3. サービスの確認と起動
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
4. バージョンの確認
mariadb --version
Ubuntu 24.04 では MariaDB 10.11.x がインストールされます。
インストール手順(MariaDB 公式リポジトリ)
Ubuntu 標準リポジトリのバージョンが古い場合や、最新機能が必要な場合は、MariaDB 公式リポジトリを追加してインストールします。
1. 必要パッケージのインストール
sudo apt install -y software-properties-common
2. MariaDB の GPG キーを追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mariadb.org/mariadb_release_signing_key.pgp | sudo gpg --dearmor -o /etc/apt/keyrings/mariadb-keyring.gpg
3. リポジトリを追加
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/mariadb-keyring.gpg] https://mirrors.cloud.tencent.com/mariadb/repo/11.5/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mariadb.list
補足: バージョンを
11.5に好きなバージョンを指定できます。最新版は MariaDB 公式サイト で確認してください。
4. パッケージリストの更新とインストール
sudo apt update
sudo apt install -y mariadb-server mariadb-client
5. サービスの確認と起動
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
6. バージョンの確認
mariadb --version
公式リポジトリからインストールした場合、Ubuntu 標準よりも新しいバージョンがインストールされます。
Ubuntu 標準 vs 公式リポジトリ
| 項目 | Ubuntu 標準リポジトリ | MariaDB 公式リポジトリ |
|---|---|---|
| バージョン | Ubuntu リリース時に固定 | 最新版 or 指定バージョン |
| セキュリティパッチ | Ubuntu 側で管理 | MariaDB Foundation が直接配信 |
| インストール手順 | apt install で完結 |
GPG キー + リポジトリ追加が必要 |
| 向いている用途 | 開発・テスト環境 | 本番環境・最新機能が必要な場合 |
初期セキュリティ設定
mysql_secure_installation を実行
デフォルトの MariaDB はセキュリティ上、いくつかの危険な設定が残っています。mysql_secure_installation で一括で hardened します。
sudo mysql_secure_installation
以下の質問が順に表示されます。
| 質問 | 推奨する回答 | 説明 |
|---|---|---|
| Switch to unix_socket authentication? | N | Unix socket 認証はローカル限定。パスワード認証を使う方が汎用的 |
| Change the root password? | Y | root パスワードを設定(未設定なら必ず設定する) |
| Remove anonymous users? | Y | 匿名ユーザーを削除 |
| Disallow root login remotely? | Y | リモートからの root ログインを禁止 |
| Remove test database and access to it? | Y | テスト用データベースを削除 |
| Reload privilege tables now? | Y | 特権テーブルをリロードして変更を即反映 |
すべて Y で進めれば、基本的なセキュリティは確保されます。
設定ファイルの場所
| ファイル | 内容 |
|---|---|
/etc/mysql/mariadb.conf.d/50-server.cnf |
サーバー設定のメイン |
/etc/mysql/mariadb.conf.d/50-client.cnf |
クライアント設定 |
/etc/mysql/my.cnf |
統合設定ファイル(他をインクルード) |
よく変更する設定項目(50-server.cnf)
[mysqld]
# バインドアドレス(リモート接続を許可する場合)
bind-address = 0.0.0.0
# 文字セット
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# ポート(デフォルト: 3306)
port = 3306
変更後はサービスを再起動します。
sudo systemctl restart mariadb
基本的な操作
ログイン
# root でログイン(パスワード設定済み)
mariadb -u root -p
# システムユーザー認証でログイン(デフォルト)
sudo mariadb
データベースとユーザーの作成
-- データベース作成
CREATE DATABASE myapp;
-- ユーザー作成(リモート接続許可)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'password';
-- 特権付与
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'%';
-- 変更を反映
FLUSH PRIVILEGES;
リモート接続を許可する場合
デフォルトでは root のリモート接続は禁止されています。アプリケーション用ユーザーで接続してください。
- ファイアウォールでポート 3306 を開放
sudo ufw allow 3306/tcp
-
上記の SQL で
myuser@'%'のユーザーを作成 -
MariaDB の bind-address を
0.0.0.0に変更
トラブルシューティング
| 症状 | 確認ポイント |
|---|---|
| ログインできない | sudo systemctl status mariadb でサービス状態を確認 |
| リモートから接続できない | ファイアウォール、bind-address、ユーザー権限の 3 点を確認 |
| 文字化け | character-set-server とクライアントの設定を UTF-8 に揃える |
| パスワード認証が通らない | mysql_secure_installation でパスワードを設定済みか確認 |
まとめ
Ubuntu での MariaDB のインストールは apt install 一発で完了し、mysql_secure_installation で基本的なセキュリティ設定も簡単にできます。
MySQL との互換性は高いため、既存の MySQL アプリケーションからの移行もスムーズです。新しい環境でデータベースを構築する場合は、Ubuntu 標準の MariaDB を採用するのが最も手軽で確実です。