CentOS Stream 9でのMariaDBのインストールと設定:効率的なMySQLの代替

CentOS tutorial - IT technology blog
CentOS tutorial - IT technology blog

CentOS Stream 9でMariaDBが必要な背景と理由

長年Linuxを扱ってきた方なら、CentOSは馴染み深いでしょう。これはRed Hat Enterprise Linux(RHEL)のソースコードをベースにした無料のLinuxオペレーティングシステムです。しかし、CentOSが安定版(CentOS Linux)から継続的開発版(CentOS Stream)に移行して以来、多くの変更がありました。これにより、サービスのデプロイ方法を変更する必要があります。

私自身、まだいくつかのサーバーがCentOS 7で稼働しており、AlmaLinuxへの移行は私が取り組んだ課題です。この経験を通して、新しいオペレーティングシステムへの適応の重要性、そしてデータベースのようなコアサービスを効率的にデプロイする方法を認識しました。

このような背景から、MariaDBは強力なオープンソースのリレーショナルデータベースとして登場し、しばしばMySQLの直接的かつ効率的な代替と見なされています。MariaDBは、元々のMySQL開発者たちによって開発されたため、多くのユーザーに支持されています。

MySQLとの高い互換性を維持しつつも、パフォーマンス、機能、セキュリティにおいて多くの改善をもたらしています。特にCentOS Stream 9では、MariaDBのようなオープンソース技術の使用がより適切となり、アプリケーションのための強固なデータ基盤を確保します。

CentOS Stream 9にMariaDBサーバーをインストールする

CentOS Stream 9へのMariaDBのインストールプロセスは、DNFパッケージマネージャーのおかげで非常に簡単です。まず、システムを更新し、次に必要なパッケージをインストールします。

1. システムを更新する

これは最初にして最も重要なステップであり、システムが常に最新のセキュリティパッチとソフトウェアパッケージで更新されていることを確認します。


sudo dnf update -y

2. MariaDBサーバーをインストールする

CentOS Stream 9は、デフォルトのリポジトリからMariaDB Serverパッケージを直接提供しています。以下のコマンドを実行するだけです。


sudo dnf install mariadb-server -y

このコマンドは、必要なすべての依存ライブラリとともにMariaDBサーバーをインストールします。

3. MariaDBを起動して有効にする

インストール後、MariaDBサービスを起動し、システム起動時に自動的に実行されるように設定する必要があります。


sudo systemctl start mariadb
sudo systemctl enable mariadb

サービスのステータスを確認するには、以下のコマンドを使用できます。


sudo systemctl status mariadb

すべてがうまくいけば、active (running)というステータスが表示されます。

MariaDBの詳細設定とセキュリティ

インストール後、データベースの安全性と効率的な運用を確保するために、初期設定とセキュリティ対策は非常に重要です。ここでは、mysql_secure_installationツールを使用し、その後いくつかの基本的な設定を調整します。

1. mysql_secure_installationを実行する

このツールは、MariaDBの基本的なセキュリティ手順(rootパスワードの設定、匿名ユーザーの削除、rootユーザーのリモートログイン禁止、テストデータベースの削除)を支援します。


sudo mysql_secure_installation

このコマンドを実行すると、一連の質問が表示されます。次のように回答してください。

  • Enter current password for root (enter for none): 初めて実行する場合はEnterを押してください。
  • Set root password? [Y/n] Y(rootユーザーのパスワードを設定します)。
  • 新しいrootパスワードを2回入力してください。
  • Remove anonymous users? [Y/n] Y(匿名ユーザーを削除します)。
  • Disallow root login remotely? [Y/n] Y(セキュリティを強化するためにrootのリモートログインを禁止します)。
  • Remove test database and access to it? [Y/n] Y(テストデータベースを削除します)。
  • Reload privilege tables now? [Y/n] Y(権限テーブルをリロードします)。

2. Firewalldの設定

もしfirewalldを設定している場合(以前の投稿で説明したように)、他のアプリケーションやクライアントがMariaDBに接続できるようにポート3306を開放する必要があります。初心者がこのステップを忘れ、なぜ他のマシンから接続できないのか不思議に思うのをよく見かけます。


sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload

3. 新しいデータベースとユーザーを作成する

アプリケーションにrootユーザーを使用することは、良いセキュリティ方法ではありません。特定の権限を持つ個別のデータベースとユーザーを作成することをお勧めします。

rootユーザーでMariaDBシェルにログインします。


sudo mysql -u root -p

設定したばかりのrootパスワードを入力します。その後、データベースとユーザーを作成し、権限を付与するために以下のSQLコマンドを実行します。


CREATE DATABASE myapp_db;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

myapp_dbmyapp_useryour_strong_passwordを、あなたのデータベース名、ユーザー名、パスワードに置き換えてください。ユーザーがどこからでも接続できるようにしたい場合は、'localhost''%'に置き換えることができます(追加のセキュリティなしに本番環境で推奨される方法ではありません)。

4. MariaDBの詳細設定(オプション)

MariaDBは、/etc/my.cnfおよび/etc/my.cnf.d/ディレクトリ内のファイルから設定ファイルを読み取ります。サーバーのパフォーマンスや動作を調整するために、カスタム設定ファイルを作成できます。

バッファサイズやその他の設定を調整するには、/etc/my.cnf.d/server.cnfファイルを作成または編集できます。/etc/my.cnf.d/custom.cnfのような独自の設定ファイルを作成するのが良い方法です。


sudo nano /etc/my.cnf.d/custom.cnf

ファイルに以下の内容を追加します。


[mariadb]
innodb_buffer_pool_size = 512M
max_connections = 200
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-name-resolve

ファイルを保存し、MariaDBサービスを再起動して変更を有効にします。


sudo systemctl restart mariadb

MariaDBのテストと監視

インストールと設定が完了したら、MariaDBが安定して効率的に動作していることを確認するための最後のステップがテストと監視です。

1. データベース接続のテスト

新しく作成したユーザーで、作成したばかりのデータベースに接続してみて、すべてが機能していることを確認できます。


mysql -u myapp_user -p myapp_db

myapp_userのパスワードを入力してください。ログインが成功すると、MariaDBプロンプトが表示されます。SHOW DATABASES;と入力して確認するか、exit;と入力して終了できます。

2. サービスのステータスを確認する

MariaDBが実行中であることを確認するために、サービスのステータスを定期的にチェックしてください。潜在的な問題を見つけるためにエラーログを確認することもできます。


sudo systemctl status mariadb
sudo journalctl -u mariadb

3. パフォーマンスの監視

MariaDBは、パフォーマンスを監視するための多くのステータス変数とツールを提供しています。これらの変数はMariaDBシェル内から確認できます。


SHOW STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Qcache%';
SHOW VARIABLES LIKE 'max_connections';

より詳細な監視には、Exporterを使用したPrometheusやZabbixなどのサードパーティツールを検討できます。ただし、初期の基本的なインストールと設定の目的では、この手動チェックでデータベースの運用状況を把握するには十分です。

これで、CentOS Stream 9へのMariaDBのインストールと設定が完了しました。MariaDBは、あなたのアプリケーションにサービスを提供する準備ができました。システムコンポーネントがどのように相互作用し、適切に設定されているかを理解することで、将来的に堅牢でスケーラブルなシステムを構築するのに役立ちます。

Share: