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
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 は同じルーツを共有していますが、近年は分岐し、それぞれ異なる機能を提供しています。次の比較は、ニーズに合ったデータベース サーバーを選択するのに役立ちます:
| 機能 | MySQL | MariaDB |
|---|---|---|
| ライセンス | デュアルライセンス(GPL とプロプライエタリ) | オープンソース(GPL) |
| パフォーマンス | 読み取りの多いワークロード向けに最適化 | 読み取りと書き込みの両方のワークロードでパフォーマンスが向上 |
| 既定のストレージ エンジン | InnoDB | Aria(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 の例)
- 証明書を生成します:
sudo mysql_ssl_rsa_setup --uid=mysql
- 設定で有効にします:
[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 の習得:データベース サーバー向けの柔軟なストレージ」では、次の方法を学びます:
- 動的なデータベース ストレージ用に論理ボリュームを作成および管理します。
- ダウンタイムなしでディスクのサイズを変更します。
- 一貫性のあるバックアップのためにスナップショットを実装します。
お見逃しなく – ブログをフォローして最新情報を入手してください!