手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 MariaDB – データベースサーバー構築とアプリ用ユーザー設計

Ubuntu 22.04 で WordPress、PowerDNS、各種 Web アプリケーションを動かす場合、MariaDB の導入だけでなく、待ち受け範囲、アプリ用ユーザー、文字コード、バックアップと復元確認まで決めておく必要があります。

この記事では、MariaDB サーバーの基本構築、ローカル接続を前提にしたアプリ用データベースとユーザーの作成、接続確認、バックアップ/復元確認を扱います。Ubuntu 22.04 の既存環境を保守するための確認記事です。

関連する記事
この記事で確認すること
  • MariaDB の導入とサービス確認
  • 待ち受け範囲の決め方
  • アプリ用データベースとユーザーの作成
  • 接続確認と文字コード確認
  • バックアップと復元手順の確認
参考
書籍
参考書籍

Advanced Ubuntu Administration and Management Best Practices

Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

MariaDB の位置づけ

MariaDB は、WordPress や PowerDNS などのアプリケーションが利用するデータベースサーバーです。アプリケーションごとに database と user を分け、必要な権限だけを付与すると、障害時や移行時の切り分けがしやすくなります。

  • アプリケーションごとに database を分ける
  • アプリケーションごとに user を分ける
  • ローカル接続と別ホスト接続を分けて考える
  • 文字コードは utf8mb4 を前提にする
  • バックアップだけでなく復元確認も行う

MariaDB をインストールする

mariadb-servermariadb-client を導入します。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-client
mariadb --version

サービス状態を確認する

MariaDB が起動していること、3306 番ポートの待ち受け、サーバーに接続できることを確認します。

systemctl status mariadb --no-pager
ss -ltnp | grep ':3306' || true
sudo mariadb -e 'SELECT VERSION();'

初期セキュリティ設定を確認する

mysql_secure_installation は対話式の初期設定ツールです。既存環境では実行前に、root 認証方式やアプリケーションへの影響を確認します。

sudo mysql_secure_installation

自動化や既存環境では、匿名ユーザー、test database、root の remote login などを個別に確認する方が安全な場合があります。

sudo mariadb -e "SELECT User,Host,plugin FROM mysql.user;"
sudo mariadb -e "SHOW DATABASES;"

待ち受け範囲を設定する

同一サーバー上のアプリケーションだけが使う場合は、127.0.0.1 に限定します。別ホストから接続させる場合は、bind-address、firewall、ユーザーの Host 条件を合わせて確認します。

sudo tee /etc/mysql/mariadb.conf.d/60-local-bind.cnf >/dev/null <<'EOF'
[mysqld]
bind-address = 127.0.0.1
EOF
sudo systemctl restart mariadb
ss -ltnp | grep ':3306' || true

データベースとアプリ用ユーザーを作成する

例として WordPress 用の database と user を作成します。パスワードは実際の値に置き換え、構成管理や secret 管理で扱います。

sudo mariadb <<'EOF'
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'change-this-password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EOF

アプリケーションが同一サーバーから接続するなら 'wordpress'@'localhost' を使います。TCP の 127.0.0.1 と Unix socket の localhost は扱いが異なることがあります。

別ホストから接続するユーザー

別ホストから接続させる場合は、接続元ネットワークを絞ります。MariaDB の待ち受けを広げるだけでなく、firewall と TLS の扱いも合わせて確認します。

sudo mariadb <<'EOF'
CREATE USER 'wordpress'@'10.1.0.%' IDENTIFIED BY 'change-this-password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'10.1.0.%';
FLUSH PRIVILEGES;
EOF

接続確認を行う

アプリ用ユーザーで接続できることを確認します。権限確認では、対象 database だけが見えることも確認します。

mariadb -u wordpress -p -h 127.0.0.1 wordpress -e 'SHOW TABLES;'
mariadb -u wordpress -p -h 127.0.0.1 -e 'SHOW DATABASES;'
sudo tail -n 80 /var/log/mysql/error.log

文字コードを確認する

WordPress などでは utf8mb4 を使います。database 作成時の character set と collation を確認します。

sudo mariadb -e "SHOW VARIABLES LIKE 'character_set_server';"
sudo mariadb -e "SHOW VARIABLES LIKE 'collation_server';"
sudo mariadb -e "SHOW CREATE DATABASE wordpress\G"

バックアップを取得する

バックアップは取得できるだけでなく、復元できることが重要です。まず mariadb-dump で論理バックアップを取得します。

sudo install -d -m 0750 /var/backups/mariadb
sudo mariadb-dump --single-transaction --routines --triggers wordpress | sudo tee /var/backups/mariadb/wordpress.sql >/dev/null
sudo ls -lh /var/backups/mariadb/wordpress.sql

復元手順を確認する

本番 database へ戻す前に、別名 database へ復元して手順を確認します。

sudo mariadb <<'EOF'
CREATE DATABASE wordpress_restore CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EOF
sudo mariadb wordpress_restore < /var/backups/mariadb/wordpress.sql
sudo mariadb -e 'SHOW TABLES FROM wordpress_restore;'

復元確認用 database は、確認後に削除します。

sudo mariadb -e 'DROP DATABASE wordpress_restore;'

運用上の注意

  • database と user をアプリケーションごとに分ける
  • 待ち受け範囲を必要最小限にする
  • 別ホスト接続では firewall と Host 条件を合わせる
  • バックアップは復元確認まで行う
  • アプリケーション導入前に文字コードと権限を確認する

MariaDB はアプリケーションの状態を持つ中心です。Web サーバーより先に、接続範囲、権限、バックアップ、復元手順を確認しておくと、移行や障害対応がしやすくなります。

まとめ

Ubuntu 22.04 の MariaDB では、インストール後にサービス状態、待ち受け範囲、アプリ用 database/user、文字コード、バックアップ/復元確認を順番に見ます。

WordPress や PowerDNS へ進む前に、データベース側の権限と復旧手順を確かめておくことが大切です。

関連する記事
Ubuntu 22.04 MariaDB – データベースサーバー構築とアプリ用ユーザー設計

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る