17. Ubuntu での安全なデータベース サーバーのセットアップ:MySQL と MariaDB の比較

Ubuntu での安全なデータベース サーバーのセットアップは、スケーラブルで信頼性の高いアプリケーションを構築するための重要な基盤です。動的な Web アプリケーションをデプロイする場合でも、複雑なエンタープライズ ワークロードを管理する場合でも、適切なデータベース ソリューションを選択することが不可欠です。MySQL と MariaDB は、パフォーマンス、柔軟性、信頼性で知られる、最も人気のあるオープンソース データベース システムの 2 つです。

このガイドでは、Ubuntu サーバーに MySQL と MariaDB をインストール、設定、保護する手順を段階的に説明します。さらに、それぞれの機能を比較し、特定のユースケースに最適なオプションを判断するのに役立てます。このステップバイステップのアプローチにより、アプリケーション向けに安全で堅牢なデータベース環境をセットアップできるようになります。


以前の記事:

01. Ubuntu Server 入門 – SysOSX: AI & Cloud

02. 初めての Ubuntu Server のセットアップ方法:初心者向けガイド – SysOSX: AI & Cloud

03. Ubuntu Server の Linux コマンドラインをマスターする – SysOSX: AI & Cloud

04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud

05. Ubuntu Server のネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud

06. Ubuntu Server でのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud

07.Ubuntu Server のパッチ適用とアップデート:包括的ガイド – SysOSX: AI & Cloud

08. Ubuntu Server の保護:強化と防御のための実践的な手順 – SysOSX: AI & Cloud

09. Ubuntu サーバーの監査とログ記録

10. Ubuntu Server のシステム監視ツール:包括的ガイド – SysOSX: AI & Cloud

11. Ubuntu サーバーの集中ログ管理:必読ガイド – SysOSX: AI & Cloud

12. Ubuntu Server の監査とコンプライアンス:ベスト プラクティス – SysOSX: AI & Cloud

13. ホスティングと Web アプリケーションのための Ubuntu Server のセットアップ:究極ガイド – SysOSX: AI & Cloud

14. 1 台の Ubuntu Server で複数の Web サイトをホストする:役立つヒント – SysOSX: AI & Cloud

15. Ubuntu Server でのストレージとディスクの管理:シンプル ガイド – SysOSX: AI & Cloud

16. Ubuntu Server でのファイル共有サービスのセットアップ:完全ガイド – SysOSX: AI & Cloud



前提条件

開始する前に、次のことを確認してください:

  • Ubuntu Server: 実行中の Ubuntu インスタンス(20.04 以降を推奨)。
  • 管理者アクセス:データベース サーバーのインストールと設定には、次の権限が必要です:sudo。
  • インターネット接続: パッケージとアップデートのダウンロードに必要です。

MySQL と MariaDB の主な違い

MySQL と MariaDB は同じルーツを共有していますが、近年は分岐し、それぞれ異なる機能を提供しています。次の比較は、ニーズに合ったデータベース サーバーを選択するのに役立ちます:

機能MySQLMariaDB
ライセンスデュアルライセンス(GPL とプロプライエタリ)オープンソース(GPL)
パフォーマンス読み取りの多いワークロード向けに最適化読み取りと書き込みの両方のワークロードでパフォーマンスが向上
既定のストレージ エンジンInnoDBAria(InnoDB の代替)
機能エンタープライズ機能は有料バージョンで利用可能多くの機能(スレッド プール、JSON 関数など)はオープンソースです
互換性広く使用され、主要プラットフォームでサポートされていますMySQL と互換性がありますが、一部のプロプライエタリな MySQL 機能をサポートしていない場合があります
レプリケーション従来のレプリケーションGalera Cluster をサポートする強化されたレプリケーション
コミュニティ サポート大規模なコミュニティとエンタープライズ サポート オプション強力なオープンソース コミュニティ サポート

推奨事項:

  • 次を選択してください:MySQL(エンタープライズ グレードの機能と独自ツールとの互換性が必要な場合)。
  • 次を選択してください:MariaDB(強化された機能とパフォーマンスを備えたオープンソース ソフトウェアを希望する場合)。

MySQL または MariaDB のインストール

ステップ 1: パッケージ リポジトリを更新する

最新のバージョンのパッケージを使用していることを確認するために、システムを更新します:

sudo apt update && sudo apt upgrade

ステップ 2: MySQL または MariaDB をインストールする

好みに応じて、MySQL または MariaDB のどちらかをインストールできます。

MySQL のインストール:

sudo apt install mysql-server

MariaDB のインストール:

sudo apt install mariadb-server

ステップ 3: インストールを確認する

インストールが完了したら、データベース サーバーが実行中であることを確認します:

MySQL の場合:

sudo systemctl status mysql

MariaDB の場合:

sudo systemctl status mariadb


データベース サーバーの設定

ステップ 1: 基本設定

パフォーマンスとセキュリティを最適化するために、設定ファイルを編集します。

MySQL の場合:

sudo nano /etc/mysql/my.cnf

MariaDB の場合:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

調整すべき主な設定:

  • bind-address: 次に設定します:0.0.0.0(リモート アクセスが必要な場合)。
  • max_connections: トラフィックの多いアプリケーションの場合は、この値を増やします。

変更を加えたら、サービスを再起動します:

sudo systemctl restart mysql   # For MySQL
sudo systemctl restart mariadb # For MariaDB

ステップ 2: データベース サーバーをテストする

データベース サーバーにログインし、動作していることを確認します:

mysql -u root -p


データベース サーバーの保護

ステップ 1: セキュリティ スクリプトを実行する

組み込みのセキュリティ スクリプトを使用して、データベース サーバーを強化します。

sudo mysql_secure_installation

プロンプトに従って、次の操作を行います:

  • 強力な root パスワードを設定します。
  • 匿名ユーザーを削除します。
  • リモートでの root ログインを無効にします。
  • テスト データベースを削除します。

ステップ 2: ファイアウォール ルールを設定する

次を使用してデータベース サーバーへのアクセスを制限します:ufw:

sudo ufw allow from <your-ip-address> to any port 3306

次を置き換えます:<your-ip-address>(アクセスが必要な IP アドレスに)。

ステップ 3: SSL/TLS を有効にする

セキュリティを強化するために、SSL/TLS 接続を有効にします。セットアップ手順については、次を参照してください:MySQL ドキュメントまたはMariaDB ドキュメント。

(MySQL の例)

  1. 証明書を生成します:
sudo mysql_ssl_rsa_setup --uid=mysql  
  1. 設定で有効にします:
[mysqld]  
ssl-ca = /var/lib/mysql/ca.pem  
ssl-cert = /var/lib/mysql/server-cert.pem  
ssl-key = /var/lib/mysql/server-key.pem  

ステップ 4: Fail2Ban をインストールする(任意)

sudo apt install fail2ban  

MySQL/MariaDB の jail ルールを次で設定します /etc/fail2ban/jail.local.


データベース サーバーの管理

ステップ 1: データベースを作成する

アプリケーション用のデータベースを作成します:

CREATE DATABASE my_application_db;

ステップ 2: ユーザーを作成して権限を付与する

ユーザーを作成して権限を割り当てます:

CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON my_application_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

ステップ 3: パフォーマンスを監視する

# Analyze slow queries  
sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log  

# Use MySQLTuner  
wget https://mysqltuner.pl -O mysqltuner.pl  
perl mysqltuner.pl  

ステップ 4: バックアップと復元

定期的なバックアップは、データの安全性に不可欠です。

バックアップ:

mysqldump -u root -p my_application_db > my_application_db.sql

復元:

mysql -u root -p my_application_db < my_application_db.sql

自動バックアップ(Cron ジョブ)

# Daily backup at 2 AM  
0 2 * * * /usr/bin/mysqldump -u root -p PASSWORD app_db > /backups/app_db_$(date +\%F).sql  

まとめ

MySQL と MariaDB はどちらも、Ubuntu でデータベース サーバーをセットアップするための優れた選択肢です。MySQL はエンタープライズ グレードの機能で知られていますが、MariaDB はオープンソースのアプローチとパフォーマンスの向上が際立っています。このガイドに従うことで、データベース サーバーを効果的にインストール、設定、保護、管理できます。

次回予告:
次のガイド「Ubuntu での LVM の習得:データベース サーバー向けの柔軟なストレージ」では、次の方法を学びます:

  • 動的なデータベース ストレージ用に論理ボリュームを作成および管理します。
  • ダウンタイムなしでディスクのサイズを変更します。
  • 一貫性のあるバックアップのためにスナップショットを実装します。

お見逃しなく – ブログをフォローして最新情報を入手してください!

コメントを残す