ホーム 記事一覧

MariaDB を Ubuntu にインストールして初期設定する手順メモ

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 のリモート接続は禁止されています。アプリケーション用ユーザーで接続してください。

  1. ファイアウォールでポート 3306 を開放
sudo ufw allow 3306/tcp
  1. 上記の SQL で myuser@'%' のユーザーを作成

  2. 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 を採用するのが最も手軽で確実です。