TiDB を ProxySQL と統合する
このドキュメントでは、例として CentOS 7 を使用してTiDBとProxySQLを統合する方法について説明します。他のシステムを使用して統合する場合は、 試してみるセクションを参照してください。このセクションでは、 DockerおよびDocker Composeを使用してテスト統合環境をデプロイする方法を紹介しています。詳細については、次を参照してください。
1.TiDBを起動
テスト環境
- TiDB Cloud
- Source compilation
- TiUP
TiDBのソースコードをダウンロードし、
tidb-server
のフォルダに移動してgo build
のコマンドを実行します。git clone git@github.com:pingcap/tidb.git cd tidb/tidb-server go build構成ファイル
tidb-config.toml
を使用して、TiDB を開始します。コマンドは次のとおりです。${TIDB_SERVER_PATH} -config ./tidb-config.toml -store unistore -path "" -lease 0s > ${LOCAL_TIDB_LOG} 2>&1 &ノート:
- 上記のコマンドは、ストレージ エンジンとして
unistore
を使用します。これは、TiDB のテスト ストレージ エンジンです。テスト環境でのみ使用してください。 TIDB_SERVER_PATH
:go build
を使用したコンパイル済みバイナリのパス。たとえば、前のコマンドを/usr/local
の下で実行すると、TIDB_SERVER_PATH
は/usr/local/tidb/tidb-server/tidb-server
になります。LOCAL_TIDB_LOG
: TiDB のログ ファイル パス。
- 上記のコマンドは、ストレージ エンジンとして
TiUPは、TiDB パッケージ マネージャーとして、TiDB、PD、TiKV など、TiDB エコシステム内のさまざまなクラスター コンポーネントの管理を容易にします。
TiUP をインストールします。
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shテスト環境で TiDB を起動します。
tiup playground
本番環境
- TiDB Cloud
- Deploy Locally
TiDB サービスをホストする必要がある場合は、 TiDB Cloudを直接使用することをお勧めします (たとえば、自分で管理できない場合や、クラウドネイティブ環境が必要な場合など)。本番環境で TiDB クラスターを構築するには、 TiDB クラスターを作成するを参照してください。
本番環境では、テスト環境よりも多くの手順が必要です。オンプレミスの本番クラスターをデプロイするには、 TiUP を使用して TiDB クラスターをデプロイするを参照して、ハードウェアの条件に基づいてデプロイすることをお勧めします。
2.ProxySQL を開始します。
ProxySQL を yum でインストールする
ProxySQL リポジトリを追加します。
cat > /etc/yum.repos.d/proxysql.repo << EOF [proxysql] name=ProxySQL YUM repository baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/centos/\$releasever gpgcheck=1 gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/repo_pub_key EOFProxySQL をインストールします。
yum install proxysqlProxySQL を開始します。
systemctl start proxysql
他のインストール方法
他の方法で ProxySQL をインストールするには、 ProxySQL READMEまたはProxySQL インストール ドキュメントを参照してください。
3.ProxySQL を構成する
ProxySQL を TiDB のプロキシとして使用するには、ProxySQL を構成する必要があります。必要な構成項目は、次のセクションにリストされています。その他の構成項目の詳細については、 ProxySQL の公式ドキュメントを参照してください。
簡単な紹介
ProxySQL は、構成を管理するためのポート ( ProxySQL Admin インターフェイス) と、プロキシへのポート ( ProxySQL MySQL Interface ) を使用します。
- ProxySQL 管理インターフェイス: 管理インターフェイスに接続するには、
admin
ユーザーを使用して構成の読み取りと書き込みを行うか、stats
ユーザーを使用して統計の一部を読み取ることができます (構成の読み取りまたは書き込みはできません)。デフォルトの資格証明はadmin:admin
およびstats:stats
です。セキュリティ上の理由から、既定の資格情報を使用してローカルに接続できますが、リモートで接続するには、多くの場合radmin
という名前の新しいユーザーを構成する必要があります。 - ProxySQL MySQL Interface : SQL を設定済みのサービスに転送するためのプロキシとして使用されます。
ProxySQL 構成には、 runtime
、 memory
、およびdisk
の 3 つのレイヤーがあります。 memory
レイヤーの構成のみを変更できます。構成を変更した後、 LOAD xxx TO runtime
を使用して構成を有効にするか、 SAVE xxx TO DISK
を使用してディスクに保存し、構成の損失を防ぐことができます。
TiDBサーバーの構成
ProxySQL に複数の TiDB サーバーを追加できます。 TiDB サーバーを追加するには、 ProxySQL 管理インターフェイスで次の手順を実行します。
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0, '127.0.0.1', 4000);
LOAD mysql servers TO runtime;
SAVE mysql servers TO DISK;
フィールドの説明:
hostgroup_id
: ProxySQLはホストグループによってサーバーを管理します。これらのサーバーに SQL を均等に分散するために、負荷分散が必要な複数のサーバーを同じホストグループに構成できます。読み取りと書き込みの分割など、サーバーを区別するために、それらを異なるホストグループに構成できます。hostname
: TiDBサーバーの IP またはドメイン。port
: TiDBサーバーのポート。
プロキシ ログイン ユーザーの構成
TiDBサーバーユーザーを ProxySQL に追加すると、ProxySQL はこのユーザーがProxySQL MySQL Interfaceにログインして TiDB との接続を作成できるようにします。ユーザーが TiDB で適切な権限を持っていることを確認してください。 TiDBサーバーユーザーを追加するには、 ProxySQL 管理インターフェイスで次の手順を実行します。
INSERT INTO mysql_users(username, password, active, default_hostgroup, transaction_persistent) VALUES ('root', '', 1, 0, 1);
LOAD mysql users TO runtime;
SAVE mysql users TO DISK;
フィールドの説明:
username
: ユーザー名。password
: パスワード。active
: ユーザーがアクティブかどうかを制御します。1
がアクティブで、0
が非アクティブです。active
が1
の場合のみ、ユーザーはログインできます。default_hostgroup
: ユーザーが使用する既定のホスト グループ。クエリ ルールがトラフィックを特定のホスト グループにルーティングしない限り、SQL が配布されます。transaction_persistent
:1
は永続的なトランザクションを示します。つまり、ユーザーが接続でトランザクションを開始すると、トランザクションがコミットまたはロールバックされるまで、すべてのステートメントが同じホストグループにルーティングされます。
構成ファイルによる ProxySQL の構成
ProxySQL Admin インターフェイスを使用して構成することに加えて、構成ファイルを使用して ProxySQL を構成することもできます。 構成ファイルによる ProxySQL の構成ドキュメントでは、構成ファイルは ProxySQL を初期化するための主要な方法ではなく、二次的な方法としてのみ考慮されるべきです。構成ファイルは、SQLite が作成されていない場合にのみ使用され、SQLite が作成された後は使用されません。構成ファイルを使用して ProxySQL を構成する場合は、最初に次のコマンドを使用して SQLite を削除する必要があります。ただし、これにより、 ProxySQL Admin インターフェイスでの構成の変更が失われます。
rm /var/lib/proxysql/proxysql.db
または、 LOAD xxx FROM CONFIG
コマンドを実行して現在の構成を上書きすることもできます。
構成ファイルのパスは/etc/proxysql.cnf
です。構成ファイルを使用して、前のセクションで必要な構成項目を構成するには、次の例ではmysql_servers
とmysql_users
を使用します。他の項目を変更するには、 /etc/proxysql.cnf
を参照してください。
mysql_servers =
(
{
address="127.0.0.1"
port=4000
hostgroup=0
max_connections=2000
}
)
mysql_users:
(
{
username = "root"
password = ""
default_hostgroup = 0
max_connections = 1000
default_schema = "test"
active = 1
transaction_persistent = 1
}
)
上記の変更を有効にするには、 systemctl restart proxysql
コマンドを使用して ProxySQL を再起動します。その後、SQLite データベースが自動的に作成され、構成ファイルは無視されません。
その他の設定項目
上記の構成アイテムは必須です。オプションの設定項目については、 グローバル変数を参照してください。
4. 試してみる
テスト環境をすばやく開始するには、Docker と Docker Compose を使用できます。ポート4000
と6033
が割り当てられていないことを確認します。
git clone https://github.com/Icemap/tidb-proxysql-integration-test.git
cd tidb-proxysql-integration-test && docker-compose pull # Get the latest Docker images
sudo setenforce 0 # Only on Linux
docker-compose up -d
上記のコマンドは、TiDB と ProxySQL を統合した環境を開始し、2 つのコンテナーを実行します。 ProxySQL 6033
ポートにログインするには、ユーザー名root
と空のパスワードを使用できます。コンテナーの構成の詳細については、 docker-compose.yaml
を参照してください。 ProxySQL の構成の詳細については、 proxysql-docker.cnf
を参照してください。
TiDB に接続するには、次のコマンドを実行します。
mysql -u root -h 127.0.0.1 -P 6033 -e "SELECT VERSION()"
結果の例は次のとおりです。
+--------------------+
| VERSION() |
+--------------------+
| 5.7.25-TiDB-v6.1.2 |
+--------------------+
5.Configuration / コンフィグレーション例
依存関係:
- ドッカー
- Docker Compose
- MySQL クライアント
サンプル コード リポジトリのクローンを作成し、サンプル ディレクトリに移動します。
git clone https://github.com/Icemap/tidb-proxysql-integration-test.git
cd tidb-proxysql-integration-test
次のセクションでは、ルート ディレクトリとしてtidb-proxysql-integration-test
を使用します。
管理インターフェイスを使用して負荷分散を構成する
サンプル ディレクトリに移動します。
cd example/load-balance-admin-interface
スクリプトで実行
ProxySQL Admin Interfaceを使用して負荷分散を構成するには、次のコマンドを使用してtest-load-balance.sh
スクリプトを実行します。
./test-load-balance.sh
ステップバイステップで実行
前のtest-load-balance.sh
のスクリプトは、次のように段階的に実行できます。
3 つの TiDB コンテナーと 1 つの ProxySQL インスタンスを開始します。
docker-compose up -ddocker-compose
を使用して 3 つの TiDB コンテナーを開始します。コンテナ内のすべてのポートは4000
で、ホスト ポートは4001
、4002
、および4003
です。- TiDB コンテナーを開始すると、ProxySQL インスタンスが開始されます。コンテナー内のProxySQL MySQL Interfaceのポートは
6033
で、ホスト ポートは6034
です。 - ProxySQL Admin Interfaceのポートはコンテナ内でしかアクセスできないため公開されていません。
- プロセスの詳細については、
docker-compose.yaml
を参照してください。
3 つの TiDB コンテナーで、TiDB インスタンスを区別するために、異なるデータ (
'tidb-0'
、'tidb-1'
、および'tidb-2'
) を使用して同じテーブル スキーマを作成します。mysql -u root -h 127.0.0.1 -P 4001 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-0'); EOF mysql -u root -h 127.0.0.1 -P 4002 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-1'); EOF mysql -u root -h 127.0.0.1 -P 4003 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-2'); EOFProxySQL Admin Interfaceで
proxysql-prepare.sql
を実行するには、次のようにdocker-compose exec
コマンドを実行します。docker-compose exec proxysql sh -c "mysql -uadmin -padmin -h127.0.0.1 -P6032 < ./proxysql-prepare.sql"上記の SQL ファイルが実行され、次の操作がトリガーされます。
- 3 つの TiDB サーバーのホストを追加し、すべて
hostgroup_id
を0
に設定します。 - TiDb サーバーの構成を有効にして、ディスクに保存します。
- 空のパスワードを持つ
root
ユーザーを追加し、default_hostgroup
を0
として設定します。これは、前のhostgroup_id
の TiDB サーバーに対応します。 - ユーザーの構成を有効にし、ディスクに保存します。
- 3 つの TiDB サーバーのホストを追加し、すべて
root
のユーザーでProxySQL MySQL Interfaceにログインし、次のステートメントを使用して 5 回クエリを実行します。予想される出力には、'tidb-0'
、'tidb-1'
、および'tidb-2'
の 3 つの異なる値が含まれます。mysql -u root -h 127.0.0.1 -P 6034 -t << EOF SELECT * FROM test.test; SELECT * FROM test.test; SELECT * FROM test.test; SELECT * FROM test.test; SELECT * FROM test.test; EOFコンテナーとネットワークを停止して削除するには、次のコマンドを使用できます。
docker-compose down
期待される出力
予想される出力には 3 つの異なる結果 ( 'tidb-0'
、 'tidb-1'
、および'tidb-2'
) がありますが、正確な順序は予想できません。以下は、予想される出力の 1 つです。
# ./test-load-balance.sh
Creating network "load-balance-admin-interface_default" with the default driver
Creating load-balance-admin-interface_tidb-1_1 ... done
Creating load-balance-admin-interface_tidb-2_1 ... done
Creating load-balance-admin-interface_tidb-0_1 ... done
Creating load-balance-admin-interface_proxysql_1 ... done
+--------+
| db |
+--------+
| tidb-2 |
+--------+
+--------+
| db |
+--------+
| tidb-0 |
+--------+
+--------+
| db |
+--------+
| tidb-1 |
+--------+
+--------+
| db |
+--------+
| tidb-1 |
+--------+
+--------+
| db |
+--------+
| tidb-1 |
+--------+
Stopping load-balance-admin-interface_proxysql_1 ... done
Stopping load-balance-admin-interface_tidb-0_1 ... done
Stopping load-balance-admin-interface_tidb-2_1 ... done
Stopping load-balance-admin-interface_tidb-1_1 ... done
Removing load-balance-admin-interface_proxysql_1 ... done
Removing load-balance-admin-interface_tidb-0_1 ... done
Removing load-balance-admin-interface_tidb-2_1 ... done
Removing load-balance-admin-interface_tidb-1_1 ... done
Removing network load-balance-admin-interface_default
管理インターフェイスを使用してユーザー分割を構成する
サンプル ディレクトリに移動します。
cd example/user-split-admin-interface
スクリプトで実行
ProxySQL Admin Interfaceを使用してユーザー分割トラフィックを構成するには、次のコマンドを使用してtest-user-split.sh
スクリプトを実行します。
./test-user-split.sh
ステップバイステップで実行
前のtest-user-split.sh
のスクリプトは、次のように段階的に実行できます。
2 つの TiDB コンテナーと 1 つの ProxySQL インスタンスを開始します。
docker-compose up -ddocker-compose
を使用して 2 つの TiDB コンテナーを開始します。コンテナー内のすべてのポートは4000
で、ホスト ポートは4001
と4002
です。- TiDB コンテナーを開始すると、ProxySQL インスタンスが開始されます。コンテナー内のProxySQL MySQL Interfaceのポートは
6033
で、ホスト ポートは6034
です。 - ProxySQL Admin Interfaceのポートはコンテナ内でしかアクセスできないため公開されていません。
- プロセスの詳細については、
docker-compose.yaml
を参照してください。
2 つの TiDB コンテナーで、TiDB インスタンスを区別するために、異なるデータ (
'tidb-0'
と'tidb-1'
) を使用して同じテーブル スキーマを作成します。mysql -u root -h 127.0.0.1 -P 4001 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-0'); EOF mysql -u root -h 127.0.0.1 -P 4002 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-1'); EOFtidb-1
つのインスタンスで ProxySQL の新しいユーザーを作成します。mysql -u root -h 127.0.0.1 -P 4002 << EOF CREATE USER 'root1' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'root1'@'%'; FLUSH PRIVILEGES; EOFProxySQL Admin Interfaceで
proxysql-prepare.sql
を実行するには、次のようにdocker-compose exec
コマンドを実行します。docker-compose exec proxysql sh -c "mysql -uadmin -padmin -h127.0.0.1 -P6032 < ./proxysql-prepare.sql"上記の SQL ファイルが実行され、次の操作がトリガーされます。
- 2 つの TiDB サーバーのホストを追加します。
hostgroup_id
oftidb-0
は0
で、hostgroup_id
oftidb-1
は1
です。 - TiDb サーバーの構成を有効にして、ディスクに保存します。
- 空のパスワードで
root
ユーザーを追加し、default_hostgroup
を0
に設定します。これは、SQL がデフォルトでtidb-0
にルーティングされることを示しています。 - 空のパスワードでユーザー
root1
を追加し、default_hostgroup
を1
に設定します。これは、SQL がデフォルトでtidb-1
にルーティングされることを示しています。 - ユーザーの構成を有効にし、ディスクに保存します。
- 2 つの TiDB サーバーのホストを追加します。
root
ユーザーとroot1
ユーザーでProxySQL MySQL Interfaceにログインします。予想される出力には、'tidb-0'
と'tidb-1'
の 2 つの異なる値が含まれます。mysql -u root -h 127.0.0.1 -P 6034 -e "SELECT * FROM test.test;" mysql -u root1 -h 127.0.0.1 -P 6034 -e "SELECT * FROM test.test;"コンテナーとネットワークを停止して削除するには、次のコマンドを使用できます。
docker-compose down
期待される出力
以下は、予想される出力の 1 つです。
# ./test-user-split.sh
Creating network "user-split-admin-interface_default" with the default driver
Creating user-split-admin-interface_tidb-1_1 ... done
Creating user-split-admin-interface_tidb-0_1 ... done
Creating user-split-admin-interface_proxysql_1 ... done
+--------+
| db |
+--------+
| tidb-0 |
+--------+
+--------+
| db |
+--------+
| tidb-1 |
+--------+
Stopping user-split-admin-interface_proxysql_1 ... done
Stopping user-split-admin-interface_tidb-0_1 ... done
Stopping user-split-admin-interface_tidb-1_1 ... done
Removing user-split-admin-interface_proxysql_1 ... done
Removing user-split-admin-interface_tidb-0_1 ... done
Removing user-split-admin-interface_tidb-1_1 ... done
Removing network user-split-admin-interface_default
管理インターフェイスを使用してプロキシ ルールを構成する
サンプル ディレクトリに移動します。
cd example/proxy-rule-admin-interface
スクリプトで実行
ProxySQL Admin Interfaceを使用して、異なる TiDB サーバーを使用して読み取りおよび書き込み SQL を実行する (一致しない場合はdefault_hostgroup
を使用する) ようにプロキシ ルールを構成するには、次のコマンドを使用してproxy-rule-split.sh
を実行します。
./proxy-rule-split.sh
ステップバイステップで実行
前のproxy-rule-split.sh
のスクリプトは、次のように段階的に実行できます。
2 つの TiDB コンテナーと 1 つの ProxySQL インスタンスを開始します。
docker-compose up -ddocker-compose
を使用して 2 つの TiDB コンテナーを開始します。コンテナー内のすべてのポートは4000
で、ホスト ポートは4001
と4002
です。- TiDB コンテナーを開始すると、ProxySQL インスタンスが開始されます。コンテナー内のProxySQL MySQL Interfaceのポートは
6033
で、ホスト ポートは6034
です。 - ProxySQL Admin Interfaceのポートはコンテナ内でしかアクセスできないため公開されていません。
- プロセスの詳細については、
docker-compose.yaml
を参照してください。
2 つの TiDB コンテナーで、TiDB インスタンスを区別するために、異なるデータ (
'tidb-0'
と'tidb-1'
) を使用して同じテーブル スキーマを作成します。mysql -u root -h 127.0.0.1 -P 4001 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-0'); EOF mysql -u root -h 127.0.0.1 -P 4002 << EOF DROP TABLE IF EXISTS test.test; CREATE TABLE test.test (db VARCHAR(255)); INSERT INTO test.test (db) VALUES ('tidb-1'); EOFProxySQL Admin Interfaceで
proxysql-prepare.sql
を実行するには、次のようにdocker-compose exec
コマンドを実行します。docker-compose exec proxysql sh -c "mysql -uadmin -padmin -h127.0.0.1 -P6032 < ./proxysql-prepare.sql"上記の SQL ファイルが実行され、次の操作がトリガーされます。
2 つの TiDB サーバーのホストを追加します。
hostgroup_id
oftidb-0
は0
で、hostgroup_id
oftidb-1
は1
です。TiDB サーバーの構成を有効にして、ディスクに保存します。
空のパスワードでユーザー
root
を追加し、default_hostgroup
を0
に設定します。これは、SQL がデフォルトでtidb-0
にルーティングされることを示しています。ユーザーの構成を有効にし、ディスクに保存します。
rule_id
を1
として、destination_hostgroup
を0
として、ルール^SELECT.*FOR UPDATE$
を追加します。 SQL ステートメントがこのルールに一致する場合、hostgroup
を0
として TiDB サーバーを使用しました (このルールは、書き込まれたデータベースにSELECT ... FOR UPDATE
を転送します)。rule_id
を2
として、destination_hostgroup
を1
として、ルール^SELECT
を追加します。 SQL ステートメントがこのルールに一致する場合、hostgroup
を1
として TiDB サーバーを使用します。ルールの構成を有効にして、ディスクに保存します。
ノート:
一致ルールの詳細:
ProxySQL は、最小から最大の順に
rule_id
つずつルールを照合しようとします。^
は SQL ステートメントの先頭に一致し、$
は末尾に一致します。match_digest
は、パラメーター化された SQL ステートメントに一致します。詳細については、 query_processor_regexを参照してください。重要なパラメータ:
digest
: パラメータ化されたハッシュ値と一致します。match_pattern
: 生の SQL ステートメントに一致します。negate_match_pattern
: 値を1
に設定すると、match_digest
またはmatch_pattern
の一致が逆になります。log
: クエリをログに記録するかどうか。replace_pattern
: 空でない場合、これは一致したパターンを置き換えるパターンです。
完全なパラメーターについては、 mysql_query_rulesを参照してください。
root
ユーザーでProxySQL MySQL Interfaceにログインします。mysql -u root -h 127.0.0.1 -P 6034次のステートメントを実行できます。
SELECT
ステートメント:SELECT * FROM test.test;ステートメントは、
rule_id
of2
でルールに一致し、hostgroup
of1
でステートメントを TiDBサーバーtidb-1
に転送することが期待されます。SELECT ... FOR UPDATE
ステートメント:SELECT * FROM test.test for UPDATE;ステートメントは、
rule_id
of1
でルールに一致し、hostgroup
of0
でステートメントを TiDBサーバーtidb-0
に転送することが期待されます。取引:
BEGIN; INSERT INTO test.test (db) VALUES ('insert this and rollback later'); SELECT * FROM test.test; ROLLBACK;BEGIN
ステートメントは、すべてのルールに一致しないことが予想されます。ユーザーのdefault_hostgroup
(It is0
) を使用して、TiDBサーバーtidb-0
(hostgroup
is0
) に転送します。また、ProxySQL はデフォルトでユーザーtransaction_persistent
を有効にします。これにより、同じトランザクション内のすべてのステートメントが同じhostgroup
で実行されます。したがって、INSERT
ステートメントとSELECT * FROM test.test;
も TiDB サーバーtidb-0
に転送されます (hostgroup
は0
です)。
コンテナーとネットワークを停止して削除するには、次のコマンドを使用できます。
docker-compose down
期待される出力
# ./proxy-rule-split.sh
Creating network "proxy-rule-admin-interface_default" with the default driver
Creating proxy-rule-admin-interface_tidb-1_1 ... done
Creating proxy-rule-admin-interface_tidb-0_1 ... done
Creating proxy-rule-admin-interface_proxysql_1 ... done
+--------+
| db |
+--------+
| tidb-1 |
+--------+
+--------+
| db |
+--------+
| tidb-0 |
+--------+
+--------------------------------+
| db |
+--------------------------------+
| tidb-0 |
| insert this and rollback later |
+--------------------------------+
Stopping proxy-rule-admin-interface_proxysql_1 ... done
Stopping proxy-rule-admin-interface_tidb-0_1 ... done
Stopping proxy-rule-admin-interface_tidb-1_1 ... done
Removing proxy-rule-admin-interface_proxysql_1 ... done
Removing proxy-rule-admin-interface_tidb-0_1 ... done
Removing proxy-rule-admin-interface_tidb-1_1 ... done
Removing network proxy-rule-admin-interface_default
構成ファイルを使用して負荷分散を構成する
構成ファイルを使用して負荷分散を構成するには、次のコマンドを使用してtest-load-balance.sh
を実行します。
cd example/load-balance-config-file
./test-load-balance.sh
期待される出力は管理インターフェイスを使用して負荷分散を構成するの出力と同じです。唯一の変更点は、構成ファイルを使用して ProxySQL 構成を初期化することです。
ノート:
ProxySQL の構成は SQLite に格納されます。構成ファイルは、SQLite が作成されていない場合にのみ使用されます。
ProxySQL 管理インターフェイスを介した構成では次の機能がサポートされているため、構成ファイルは初期化のみに使用し、構成アイテムの変更には使用しないことをお勧めします。
- 入力検証。
- 任意の MySQL クライアントによるリモート構成。
- アップタイムを最大化するためのランタイム構成 (再起動する必要はありません)。
- ProxySQLクラスタが構成されている場合、構成を他の ProxySQL ノードに伝搬します。