はじめに
Web 開発やデータ管理では、信頼性の高いデータベースが欠かせません。MariaDB は、広く利用されているオープンソースのリレーショナルデータベース管理システムです。MySQL の初期開発者によって作成されており、MySQL と高い互換性を持つように設計されています。
リレーショナルデータベースとは、データを行と列からなるテーブルに整理し、関連するデータ同士を論理的に結び付ける仕組みです。このモデルは、構造化されていて検索しやすく、ユーザー、注文、在庫などの業務データに適しているため、Web アプリケーションの基盤として広く使われています。
データベースサーバーと、サーバーが管理するデータは区別して考える必要があります。MariaDB をインストールしても、アプリケーション用のテーブルが作成されるわけではありません。将来それらのテーブルを保存・検索するためのサービスをインストールする作業です。
この実験では、Ubuntu Linux システム上に MariaDB データベースサーバーをゼロから構築する方法を学びます。ソフトウェアのインストール、サービスの起動、不正アクセスを防ぐためのセキュリティ設定、そしてデータベースに接続して動作を確認するまでの一連の手順を実行します。
この実験を終えると、プロジェクトで利用できる、完全に機能するデータベースサーバーが構築されています。
データベースサーバーをインストールする
このステップでは、MariaDB サーバーパッケージをインストールします。Ubuntu では、ソフトウェアのインストールを apt(Advanced Package Tool)で管理します。
MariaDB サーバーをインストールするには、ターミナルで次のコマンドを実行します。ソフトウェアのインストールには管理者権限が必要なため、sudo を使用します。
この段階ではサーバーソフトウェアをインストールするだけで、まだデータベースシェルは開きません。これは、Web サーバーやその他のデーモンですでに確認したものと同じサービスの仕組みに基づいています。
sudo apt install mariadb-server -y
説明:
sudo:管理者(スーパーユーザー)としてコマンドを実行します。apt install:パッケージをインストールするコマンドです。mariadb-server:インストールするパッケージ名です。-y:確認プロンプトに自動的に「yes」と回答し、インストールをスムーズに進めます。
注: LabEx の一部の環境では、MariaDB がすでにインストールされている場合があります。その場合、このコマンドは最新バージョンが利用できるかを確認し、必要に応じて状態を整えるだけなので、問題ありません。
コマンドの処理が完了したら、バージョンを確認してインストールを検証します。
mariadb --version
mariadb Ver 15.1 Distrib 10.6.x... のような出力が表示されれば、ソフトウェアがシステムにインストールされていることを確認できます。
データベースサービスを起動する
ソフトウェアをインストールするとファイルはディスクに配置されますが、プログラムが自動的に起動するとは限りません。通常、データベースサーバーはバックグラウンドで動作する「サービス」(デーモンとも呼ばれます)として実行され、接続を待ち受けます。
このクライアント・サーバーモデルは、SQL データベースの動作の中心となる仕組みです。アプリケーションや管理者は、生のデータファイルを直接読み取るのではなく、サーバーに接続してクエリを送信し、結果を受け取ります。
次のコマンドで MariaDB サービスを起動します。
sudo service mysql start
注:MariaDB をインストールしましたが、互換性のため、サービス名には mysql が使われることがよくあります。
サービスがアクティブで正常に動作していることを確認するには、状態を確認します。
sudo service mysql status
出力にサービスが active (running) と表示されることを確認してください。この表示があれば、データベースサーバーは起動しており、接続を受け付けられる状態です。
インストール環境を安全にする
MariaDB を新規インストールした直後の設定には、テストには便利でも本番環境では安全でないものがあります。たとえば、匿名ユーザーが許可されていたり、root パスワードが空のままになっていたりする場合があります。
MariaDB には、これらの問題を解決するためのセキュリティスクリプトが用意されています。次のコマンドで実行します。
このスクリプトの目的は、安全でない初期設定を削除し、アクセス制御を強化することです。インフラストラクチャソフトウェアでは、まず使いやすさを重視してインストールし、その後の手順で安全な実運用向けに設定を強化するという流れがよく使われます。
sudo mysql_secure_installation
このスクリプトは対話形式で動作し、いくつかの質問を表示します。以下の手順に従って回答してください。
- Enter current password for root:Enter キーを押します(まだパスワードが設定されていないため)。
- Switch to unix_socket authentication:
nと入力して Enter キーを押します。 - **Change the root password?**:
nと入力して Enter キーを押します(この実験ではログインを簡単にするため、パスワードなしのままにします)。 - **Remove anonymous users?**:
Yと入力して Enter キーを押します。 - **Disallow root login remotely?**:
Yと入力して Enter キーを押します。 - **Remove test database and access to it?**:
Yと入力して Enter キーを押します。 - **Reload privilege tables now?**:
Yと入力して Enter キーを押します。
スクリプトが完了すると、All done! と表示されます。これで、データベースは一般的な脆弱性に対して安全な状態になりました。
接続して確認する
最後のステップでは、データベースサーバーに接続できることを確認します。デフォルト設定では、root ユーザーはパスワードなしで sudo を使って接続できます。
MariaDB monitor(データベース用のコマンドラインインターフェース)にログインします。
sudo mariadb -u root
接続に成功すると、プロンプトが次のように変わります。
MariaDB [(none)]>
このプロンプトが表示されたら、Linux オペレーティングシステムではなく、データベースサーバーに直接コマンドを送信していることを示しています。
ここからは、この違いが非常に重要になります。MariaDB シェルが理解できるのは SQL コマンドであり、通常の Linux シェルコマンドではありません。つまり、現在は別のコマンド環境を操作しています。
接続を終了して通常の Linux ターミナルに戻るには、次のように入力します。
exit
これで、MariaDB データベースのインストール、セキュリティ設定、接続に成功しました。お疲れさまでした!
まとめ
この実験では、堅牢なデータベース環境を構築しました。次の操作を学びました。
- パッケージマネージャーを使って MariaDB サーバーをインストールする。
- データベースサービスを起動し、状態を確認する。
- 安全でない初期設定を削除して、インストール環境を安全にする。
- コマンドラインクライアントを使ってデータベースに接続する。
これらは、どのようなアプリケーションにも対応できるデータベースサーバーを準備するための基本手順です。サーバーが正常に動作し、安全に保護されていることを確認できます。



