データベース · 3 min read · Sep 26, 2025
Rocky Linux 9にPercona XtraDB Clusterをインストールする方法

Percona XtraDB Clusterは、MySQL用の完全なオープンソースのデータベースクラスタリングソリューションです。これにより、堅牢で高性能な高可用性のMySQLサーバー展開を作成できます。Percona XtraDB Clusterの最新バージョンは8.0で、MySQL Server Community Edition 8.0と完全に互換性があります。
Percona XtraDB Clusterは、同期レプリケーション、マルチソースレプリケーション、自動ノードプロビジョニング、自動SSL暗号化設定、最適化されたパフォーマンスなどの機能を提供します。
Percona XtraDB Clusterは、データベースサーバーの高可用性を確保し、リニアスケーラビリティを提供し、ダウンタイムとデータ損失を防ぎます。
このガイドでは、Rocky Linux 9サーバー上でPercona XtraDB Cluster(PXC)を介してMySQLクラスタを設定する方法を示します。複数のRocky LinuxシステムにPercona XtraDB Clusterをインストールし、サーバー間でデータベースレプリケーションを有効にするためにPercona XtraDB Clusterを設定し、次に1つのサーバーにデータを挿入し、別のサーバーからデータを確認して検証します。
前提条件
このガイドを完了するには、Rocky Linux 9を実行している2台以上のサーバーが必要です。また、すべてのサーバーでsudo/root管理者権限を持つ非rootユーザーも必要です。また、SELinuxは許可モードで実行されている必要があります。
この例では、使用される3台のRocky Linux 9サーバーがあります。以下はサーバーの詳細です:
Hostname IP Address
--------------------------
pxc-rock01 192.168.5.80
pxc-rock02 192.168.5.81
pxc-rock03 192.168.5.82すべての要件が整ったら、Percona XtraDB Clusterのインストールを開始できます。
/etc/hostsとFirewalldの設定
最初のステップでは、すべてのRocky Linuxサーバーで/etc/hostsファイルとfirewalldを設定します。/etc/hostsファイルを修正し、各サーバーのIPアドレスとホスト名の詳細を追加し、次にPercona XtraDB Clusterで使用されるいくつかのポートを追加します。
以下は、ファイアウォールで開く必要があるPercona XtraDB Clusterポートの詳細です。
Ports Used for
---------------------------
3306 MySQLクライアント接続およびSST(状態スナップショット転送)
4444 Percona XtraBackup経由のSST
4567 書き込みセットレプリケーショントラフィック(TCP経由)およびマルチキャストレプリケーション(TCPおよびUDP経由)
4568 IST(増分状態転送)始めるには、次のnanoエディタコマンドを使用して’/etc/hosts’ファイルを開きます。
sudo nano /etc/hostsクラスタで使用されるホスト名とIPアドレスの詳細を追加します。サーバー環境に合わせて詳細を変更してください。
192.168.5.80 pxc-rock01
192.168.5.81 pxc-rock02
192.168.5.82 pxc-rock03完了したら、ファイルを保存して閉じます。
次に、以下の’firewall-cmd‘コマンドを入力して、内部ネットワークサブネットを信頼できるソースとして追加します。これにより、信頼できるネットワークのみがすべてのサーバーにアクセスできるようになります。
sudo firewall-cmd --permanent --add-source=192.168.5.0/24次に、Percona XtraDB Cluster用のいくつかのポートを開き、firewalldを再読み込みして変更を適用します。出力’success‘は、新しいルールがfirewalldに追加されたことを確認します。
sudo firewall-cmd --add-port={3306/tcp,4444/tcp,4567/tcp,4567/udp,4568/tcp} --permanent
sudo firewall-cmd --reload最後に、以下の’firewall-cmd’コマンドを入力して、firewalldで有効なルールのリストを確認します。
sudo firewall-cmd --list-all以下の出力がターミナルシェルに表示されます。Percona XtraDB Clusterで使用されるすべてのポートがリストされていることを確認してください。

/etc/hostsファイルとfirewalldが設定されたので、次にPercona XtraDB Clusterパッケージをインストールします。
Percona XtraDB Clusterのインストール
このセクションでは、すべてのRocky LinuxサーバーにPercona XtraDB Clusterをインストールします。Percona XtraDBリポジトリを設定し、次にPercona XtraDB Clusterパッケージをインストールします。また、最後にすべてのサーバーでMySQLのデフォルトのrootパスワードを変更します。
最初に、EPELリポジトリを追加して有効にする必要があります。以下の’dnf install’コマンドを入力してEPELリポジトリを追加します。
sudo dnf install epel-release次に、以下のコマンドを入力してPerconaリリースアプリケーションをインストールします。プロンプトが表示されたらyを入力し、ENTERを押して続行します。このパッケージは、Perconaリポジトリを管理するために使用できるコマンドラインツール’percona-release‘を提供します。
sudo dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
次に、以下の’percona-release‘コマンドを実行して、Percona XtraDB Clusterリポジトリv8.0を有効にします。このプロセス中に、デフォルトのMySQLリポジトリを無効にするように求められますので、yを入力して確認し、ENTERを押して続行します。
sudo percona-release setup pxc-80出力メッセージ’All done!‘は、操作が成功したことを確認します。

以下の’dnf repolist’コマンドを入力して、有効なリポジトリのリストを確認します。出力に’pxc-80-release’リポジトリが有効になっていることが表示され、’prel-release’や’tools-release’などの追加のリポジトリも表示されるはずです。
sudo dnf repolist
次に、以下の‘dnf install’コマンドを入力して、Percona XtraDB Clusterパッケージをインストールします。確認のためにプロンプトが表示されたらyを入力し、ENTERを押して続行します。
sudo dnf install percona-xtradb-cluster
Percona GPGキーを受け入れるように求められたら、yを入力してENTERを押して確認します。

Percona XtraDB Clusterがインストールされたら、以下のsystemctlコマンドユーティリティを入力してMySQLサービスを開始し、有効にします。
sudo systemctl start mysql
sudo systemctl enable mysql次に、以下のコマンドを使用してMySQLサービスのステータスを確認します。出力’active (running)‘は、MySQLが実行中であることを確認します。また、出力‘..; enabled..’は、MySQLがシステム起動時に自動的に開始されることを確認します。
sudo systemctl status mysql
Percona XtraDB Clusterが実行されているので、すべてのMySQLサーバーのデフォルトのrootパスワードを変更します。
以下のコマンドを入力して、MySQL rootユーザーのデフォルト生成パスワードを確認します。デフォルトのMySQL rootパスワードをコピーします。
sudo grep 'temporary password' /var/log/mysqld.log次に、以下の’mysql‘コマンドを介してMySQLシェルにログインします。パスワードのプロンプトが表示されたら、コピーしたデフォルトのMySQLパスワードを貼り付けます。
sudo mysql -u root -pログインすると、次のようなプロンプト’mysql>‘を持つMySQLシェルが表示されます。

以下のMySQLクエリを入力して、MySQL rootユーザーのデフォルトパスワードを変更し、終了します。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP4ssr00tMySQL';
quit
最後に、Percona XtraDB Clusterを構成する前に、MySQLサービスを停止する必要があります。以下の’systemctl’コマンドユーティリティを入力して、すべてのサーバーでMySQLサービスを停止します。
sudo systemctl stop mysqlPercona XtraDB Clusterがインストールされ、MySQL root構成が完了し、MySQLサービスが停止したので、クラスタを構成して設定する準備が整いました。
SSL/TLS証明書のコピー
Percona XtraDB Cluster 8.0以降、クラスタ内のサーバー間のデフォルト接続は暗号化される必要があります。サーバー間の暗号化を設定するには、すべてのサーバーに同じSSL/TLS証明書が必要です。
このセクションでは、‘pxc-rock01‘サーバーから’pxc-rock02‘および’pxc-rock03‘サーバーにデフォルト生成されたSSL/TLS証明書をコピーします。
‘pxc-rock01‘サーバーで、以下のコマンドを入力して利用可能な証明書を確認します。これにより、証明書ファイル’server-cert.pem‘、’server-key.pem‘、および’ca.pem‘をpxc-rock02およびpxc-rock03サーバーにコピーする必要があります。
ls /var/lib/mysql/*.pem作業ディレクトリを’/var/lib/mysql‘に移動します。
cd /var/lib/mysql次に、以下のscpコマンドを入力して、SSL/TLS証明書ファイルをpxc-rock02およびpxc-rock03サーバーにコピーします。
scp server-key.pem server-cert.pem ca.pem root@pxc-rock02:/var/lib/mysql
scp server-key.pem server-cert.pem ca.pem root@pxc-rock03:/var/lib/mysql以下は、pxc-rock01からpxc-rock02サーバーへのSSL/TLS証明書のコピー処理中の出力です。

以下は、pxc-rock01からpxc-rock03サーバーへのSSL/TLS証明書のコピー処理中の出力です。
pxc-rock01でのPercona XtraDB Clusterの初期化
最初に、pxc-rock01サーバーからPercona XtraDB Clusterを初期化します。これを達成するには、MySQLサーバーの設定ファイル’/etc/my.cnf‘を修正し、次に’mysql@bootstrap‘サービスを開始する必要があります。
以下のnanoエディタコマンドを使用してMySQL設定ファイル‘/etc/my.cnf’を開きます。
sudo nano /etc/my.cnfPercona XtraDB ClusterサーバーのIPアドレスのリストを’wsrep_cluster_address‘パラメータに追加し、’default_storage_engine=InnoDB‘パラメータを追加します。
# クラスタ接続URLにはpxc-rock01、pxc-rock02、pxc-rock03のIPが含まれます
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# MyISAMストレージエンジンの使用は推奨されません。
default_storage_engine=InnoDB
‘wsrep_node_address‘を現在のサーバーIPアドレスに、’wsrep_node_name‘をシステムホスト名に、’wsrep_cluster_name‘をクラスタの名前に変更します。
# ノード1のアドレス
wsrep_node_address=192.168.5.80
# ノード名
wsrep_node_name=pxc-rock01
# クラスタ名
wsrep_cluster_name=pxc-cluster
最後に、行の下部に次の設定を追加して、Percona XtraDB Clusterサーバー間の安全なSSL/TLS接続とSST接続を有効にします。
# ssl/tls接続を有効にする
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem完了したら、ファイルを保存して閉じます。
次に、以下のsystemctlコマンドユーティリティを入力して、’mysql@bootstrap‘サービスを開始し、最初のPercona XtraDB Clusterサーバーを初期化します。
systemctl start [email protected]Percona XtraDB Clusterの初期化が成功したことを確認するために、MySQLシェルにログインし、’wsrep%‘ステータスを確認する必要があります。
以下の’mysql’コマンドを入力して、’root‘ユーザーとしてMySQLサーバーにログインします。プロンプトが表示されたら、新しいMySQL rootパスワードを入力します。
sudo mysql -u root -pログイン後、以下のクエリを入力して’wsrep%‘ステータスの詳細を確認します。
SHOW STATUS LIKE 'wsrep%';次のような出力が得られます - ‘wsrep_cluster_size’セクションには値’1‘が表示され、Percona XtraDB Clusterが1台のサーバーで初期化されていることを意味します。また、’wsrep_incoming_address’セクションにはサーバーIPアドレスが表示されます。最後に、ノードはSynced状態にあり、完全に接続されており、書き込みセットレプリケーションの準備が整っています。

これにより、最初のPercona XtraDB Clusterサーバー’pxc-rock01‘が初期化されました。次のステップでは、’pxc-rock02‘および’pxc-rock03‘サーバーをクラスタに追加します。
pxc-rock02サーバーをPercona XtraDB Clusterに追加
最初のPercona XtraDB Clusterが初期化された後、pxc-rock02サーバーをクラスタに追加します。Percona XtraDB Clusterにサーバーを追加する方法は、初期化プロセスと似ており、デフォルトのMySQLサーバー設定ファイル’/etc/my.cnf’を修正し、クラスタのサーバーのリストを定義し、次にMySQLサービスを通常通り開始する必要があります。
以下のnanoエディタコマンドを入力して、MySQL設定ファイル’/etc/my.cnf‘を開きます。
sudo nano /etc/my.cnfPercona XtraDB ClusterサーバーのIPアドレスのリストを’wsrep_cluster_address‘パラメータに追加し、’default_storage_engine=InnoDB‘パラメータを追加します。
# クラスタ接続URLにはpxc-rock01、pxc-rock02、pxc-rock03のIPが含まれます
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# MyISAMストレージエンジンの使用は推奨されません。
default_storage_engine=InnoDB
‘wsrep_node_address‘を現在のサーバーIPアドレスに、’wsrep_node_name‘をシステムホスト名に、’wsrep_cluster_name‘をクラスタの名前に変更します。
# ノード#2のアドレス
wsrep_node_address=192.168.5.81
# ノード名
wsrep_node_name=pxc-rock02
# クラスタ名
wsrep_cluster_name=pxc-cluster
最後に、行の下部に次の設定を追加して、Percona XtraDB Clusterサーバー間の安全なSSL/TLS接続とSST接続を有効にします。
# ssl/tls接続を有効にする
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem完了したら、ファイルを保存して閉じます。
次に、以下のsystemctlコマンドユーティリティを入力してMySQLサービスを開始します。これにより、’pxc-rock02‘サーバーが初期化されたPercona XtraDB Clusterに参加します。
sudo systemctl start mysql最後に、pxc-rock02サーバーがPercona XtraDB Clusterに追加されたことを確認するために、以下のコマンドを使用してrootユーザーとしてMySQLシェルにログインします。プロンプトが表示されたら、MySQL rootパスワードを入力します。
sudo mysql -u root -p次に、以下のクエリを入力して’wsrep%‘ステータスの詳細を確認します。
SHOW STATUS LIKE 'wsrep%';次のような出力が得られます - ‘wsrep_cluster_size’セクションには値’2‘が表示され、Percona XtraDB Clusterに2台のサーバーがあることを意味します。また、’wsrep_incoming_address’セクションには、pxc-rock01およびpxc-rock02サーバーのIPアドレスが表示されます。最後に、ノードはSynced状態にあり、完全に接続されており、書き込みセットレプリケーションの準備が整っています。

pxc-rock03サーバーをPercona XtraDB Clusterに追加
このセクションでは、3台目のサーバーpxc-rock03をPercona XtraDB Clusterに追加します。
以下のnanoエディタコマンドを使用して、設定ファイル‘/etc/my.cnf‘を開きます。
sudo nano /etc/my.cnfPercona XtraDB ClusterサーバーのIPアドレスのリストを’wsrep_cluster_address‘パラメータに追加し、’default_storage_engine=InnoDB‘パラメータを追加します。
# クラスタ接続URLにはpxc-rock01、pxc-rock02、pxc-rock03のIPが含まれます
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# MyISAMストレージエンジンの使用は推奨されません。
default_storage_engine=InnoDB
‘wsrep_node_address’を現在のサーバーIPアドレスに、’wsrep_node_name‘をシステムホスト名に、’wsrep_cluster_name‘をクラスタの名前に変更します。
# ノード#3のアドレス
wsrep_node_address=192.168.5.82
# ノード名
wsrep_node_name=pxc-rock02
# クラスタ名
wsrep_cluster_name=pxc-cluster
最後に、行の下部に次の設定を追加して、Percona XtraDB Clusterサーバー間の安全なSSL/TLS接続とSST接続を有効にします。
# ssl/tls接続を有効にする
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem完了したら、ファイルを保存して閉じます。
次に、以下のsystemctlコマンドユーティリティを入力してMySQLサービスを開始し、現在のサーバーpxc-rock03をPercona XtraDB Clusterに参加させます。
sudo systemctl start mysql最後に、以下のmysqlコマンドを入力してMySQLシェルにログインし、’wsrep%‘ステータスを確認します。プロンプトが表示されたら、MySQL rootパスワードを入力します。
sudo mysql -u root -p次に、以下のクエリを入力して’wsrep%‘ステータスの詳細を確認します。
SHOW STATUS LIKE 'wsrep%';次のような出力が得られます - ‘wsrep_cluster_size’セクションには値’3‘が表示され、Percona XtraDB Clusterに3台のサーバーがあることを意味します。また、’wsrep_incoming_address’セクションには、pxc-rock01、pxc-rock02、およびpxc-rock03サーバーのIPアドレスが表示されます。最後に、ノードはSynced状態にあり、完全に接続されており、書き込みセットレプリケーションの準備が整っています。

これで、3台の異なるRocky Linux 9サーバーでPercona XtraDB Clusterが構成されました。これにより、Percona XtraDB Cluster上のサーバー間でデータベースレプリケーションが機能するはずです。次のステップでは、複数のサーバー間でのデータベースのレプリケーションを確認します。
データベースレプリケーションのテスト
このセクションでは、Percona XtraDB Clusterでのデータベースレプリケーションを確認します。これにより、インストールが成功し、完了したことが確認されます。
最初に、pxc-rock02サーバーからMySQLシェルにログインし、’testdb‘という新しいデータベースを作成します。
sudo mysql -u root -p
CREATE DATABASE testdb;
次に、pxc-rock03サーバーに移動し、rootユーザーを介してMySQLシェルに接続し、デフォルトの作業データベースを’testdb‘に変更します。
sudo mysql -u root -p
USE testdb;以下のクエリを入力して、’table1‘という新しいテーブルを作成します。
CREATE TABLE table1 (node_id INT PRIMARY KEY, node_name VARCHAR(30));
次に、pxc-rock01サーバーに移動し、MySQLシェルにログインして、以下の’INSERT‘クエリを介してデータベース’testdb‘に新しいデータを挿入します。
sudo mysql -u root -pINSERT INTO testdb.table1 VALUES (1, 'pxc-rock01');
INSERT INTO testdb.table1 VALUES (2, 'pxc-rock02');
INSERT INTO testdb.table1 VALUES (3, 'pxc-rock03');
データが追加されたら、pxc-rock02サーバーに戻り、以下のSELECTクエリを入力して、データベース’testdb‘およびテーブル’table1‘のすべての利用可能なデータを取得します。
SELECT * FROM testdb.table1;レプリケーションが成功していれば、pxc-rock02サーバーに挿入したデータが表示されるはずです。データはPercona XtraDB Clusterのすべてのサーバーに保存されます。

これにより、Rocky Linux 9サーバーにPercona XtraDB Clusterをインストールすることが成功したことが確認されました。
結論
このガイドでは、3台のRocky Linux 9サーバーにPercona XtraDB Clusterをインストールおよび展開しました。Percona XtraDB Clusterをインストールする方法、firewalldを介して展開を保護する方法、クラスタを初期化する方法、ノードをクラスタに追加する方法を学びました。
さらに、すべてのサーバー間のトラフィックをSSL/TLS証明書を使用して暗号化し、Percona XtraDB Cluster 8.0でデフォルトで有効になっているオプション’pxc-encrypt-cluster-traffic’を使用して、Percona XtraDB Clusterのインストールを保護しました。
これにより、pxc-rock02およびpxc-rock03サーバーを追加する際に学んだ手順を使用して、現在のPercona XtraDB Clusterにさらにサーバーを追加できます。また、ProxySQLやHAPROXYなどのサードパーティアプリケーションを使用して、負荷分散と高可用性を設定することもできます。詳細については、Percona XtraDB Clusterの公式ドキュメントを参照してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。