第2章 MariaDB の使用
MariaDB サーバーは、MySQL テクノロジーに基づくオープンソースの高速で堅牢なデータベースサーバーです。MariaDB は、データを構造化情報に変換して、データにアクセスする SQL インターフェイスを提供するリレーショナルデータベースです。これには、複数のストレージエンジンとプラグインに加え、地理情報システム (GIS) と JavaScript Object Notation (JSON) 機能も含まれています。
RHEL システムに MariaDB をインストールして設定する方法、MariaDB データをバックアップする方法、MariaDB の以前のバージョンから移行する方法、および MariaDB Galera クラスター を使用してデータベースを複製する方法について説明します。
2.1. MariaDB のインストール
RHEL 9.0 は、この Application Stream の初期バージョンとして MariaDB 10.5 を提供します。これは、RPM パッケージとして簡単にインストールできます。追加の MariaDB バージョンは、RHEL 9 のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
RHEL 9.4 で、mariadb:10.11
モジュールストリームとして MariaDB 10.11 が導入されました。
設計上、同じモジュールの複数のバージョン (ストリーム) を並行してインストールすることはできません。したがって、mariadb
モジュールから利用可能なストリームのいずれかを選択する必要があります。コンテナー内では、別々のバージョンの MariaDB データベースサーバーを使用できます。コンテナー内で複数の MariaDB バージョンを実行する を参照してください。
RPM パッケージが競合しているため、RHEL 9 では MariaDB および MySQL データベースサーバーを同時にインストールすることはできません。コンテナー内では、MariaDB および MySQL データベースサーバーを並行して使用できます。コンテナー内で複数の MySQL および MariaDB バージョンを実行する を参照してください。
MariaDB をインストールするには、以下の手順を行います。
手順
MariaDB サーバーパッケージをインストールします。
MariaDB 10.5 の場合は、RPM パッケージからインストールします。
# dnf install mariadb-server
MariaDB 10.11 の場合は、
mariadb
モジュールからストリーム (バージョン)11
を選択し、server プロファイルを指定します。以下に例を示します。# dnf module install mariadb:10.11/server
mariadb
サービスを起動します。# systemctl start mariadb.service
mariadb
サービスが、システムの起動時に起動するようにします。# systemctl enable mariadb.service
2.1.1. コンテナー内で複数の MariaDB バージョンを実行する
同じホスト上で別々のバージョンの MariaDB を実行するには、コンテナー内で実行してください。同じモジュールの複数のバージョン (ストリーム) を並行してインストールすることはできないためです。
前提条件
-
container-tools
メタパッケージがインストールされている。
手順
Red Hat カスタマーポータルアカウントを使用して、
registry.redhat.io
レジストリーに認証します。# podman login registry.redhat.io
すでにコンテナーレジストリーにログインしている場合は、このステップをスキップしてください。
コンテナー内で MariaDB 10.5 を実行します。
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_1>:3306 rhel9/mariadb-105
このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
コンテナー内で MariaDB 10.11 を実行します。
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_2>:3306 rhel9/mariadb-1011
このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
注記2 つのデータベースサーバーのコンテナー名とホストポートが異なっている必要があります。
クライアントがネットワーク上のデータベースサーバーにアクセスできるように、ファイアウォールでホストポートを開きます。
# firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,...} # firewall-cmd --reload
検証
実行中のコンテナーに関する情報を表示します。
$ podman ps
データベースサーバーに接続し、root としてログインします。
# mysql -u root -p -h localhost -P <host_port> --protocol tcp