如何在Ubuntu 16.04上使用ProxySQL做爲MySQL的負載均衡器

如何在Ubuntu 16.04上使用ProxySQL做爲MySQL的負載均衡器
發表於2018年1月8日 73.9k 次查看MYSQL 負載平衡數據庫羣集高可用性
做者:Mateusz Papiernikmysql

介紹

ProxySQL是一個開源的MySQL代理服務器,這意味着它充當MySQL服務器和訪問其數據庫的應用程序之間的中介。ProxySQL能夠經過在多個數據庫服務器池之間分配流量來提升性能,而且若是一個或多個數據庫服務器發生故障,還能夠經過自動故障切換到備用數據庫來提升可用性。git

在本指南中,您將設置ProxySQL做爲具備自動故障轉移功能的多個MySQL服務器的負載平衡器。例如,本教程使用由三個MySQL服務器組成的多主複製集羣,但您也可使用與其餘集羣配置相似的方法。github

先決條件

要學習本教程,您須要:sql

一個Ubuntu 16.04服務器設置了這個初始的Ubuntu 16.04服務器設置教程,包括一個sudo非root用戶和防火牆。該服務器將成爲您的ProxySQL實例。
配置三個MySQL服務器以造成多主複製組。您能夠按照Ubuntu 16.04上的如何配置MySQL組複製教程進行設置。在「 選擇單個主要」或「多個主要」部分中,按照多主複製組的說明進行操做。
第1步 - 安裝ProxySQL
ProxySQL的開發人員在他們的GitHub版本頁面上爲全部ProxySQL版本提供官方Ubuntu軟件包,所以咱們將從那裏下載最新的軟件包版本並進行安裝。數據庫

您能夠在發佈列表中找到最新的軟件包。命名約定是,相似於版本1.4.4 的字符串,而且是相似於64位Ubuntu 16.04 的字符串。proxysql_version-distribution.debversion1.4.4distributionubuntu16_amd64ubuntu

將最新的官方軟件包(編寫本文時爲1.4.4)下載到/tmp目錄中。api

cd /tmp
curl -OL https://github.com/sysown/proxysql/releases/download/v1.4.4/proxysql_1.4.4-ubuntu16_amd64.deb

安裝包dpkg,用於管理.deb軟件包。該-i標誌表示咱們要從指定的文件安裝。緩存

sudo dpkg -i proxysql_*

此時,您再也不須要該.deb文件,所以您能夠將其刪除。安全

rm proxysql_*

接下來,咱們須要一個MySQL客戶端應用程序來鏈接到ProxySQL實例。這是由於ProxySQL內部使用與MySQL兼容的接口來執行管理任務。咱們將使用mysql命令行工具,它是mysql-clientUbuntu存儲庫中可用包的一部分。服務器

更新軟件包存儲庫以確保得到最新的預捆綁版本,而後安裝mysql-client軟件包。

sudo apt-get update
sudo apt-get install mysql-client

您如今擁有運行ProxySQL的全部要求,但該服務在安裝後不會自動啓動,所以請當即手動啓動。

sudo systemctl start proxysql

如今,ProxySQL應該以其默認配置運行。你能夠查看使用systemctl。

systemctl status proxysql

輸出看起來相似於:

Output
● proxysql.service - LSB: High Performance Advanced Proxy for MySQL
   Loaded: loaded (/etc/init.d/proxysql; bad; vendor preset: enabled)
   Active: active (running) since Thu 2017-12-21 19:19:20 UTC; 5s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 12350 ExecStart=/etc/init.d/proxysql start (code=exited, status=0/SUCCESS)
    Tasks: 23
   Memory: 30.9M
      CPU: 86ms
   CGroup: /system.slice/proxysql.service
           ├─12355 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql
           └─12356 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql

該active (running)行表示ProxySQL已安裝並正在運行。

接下來,咱們將經過設置用於訪問ProxySQL管理界面的密碼來提升安全性。

第2步 - 設置ProxySQL管理員密碼

第一次啓動新的ProxySQL安裝時,它使用包提供的配置文件來初始化其全部配置變量的默認值。初始化後,ProxySQL將其配置存儲在數據庫中,您能夠經過命令行進行管理和修改。

要在ProxySQL中設置管理員密碼,咱們將鏈接到該配置數據庫並更新相應的變量。

首先,訪問管理界面。系統將提示您輸入密碼,在默認安裝中,密碼爲admin。

mysql -u admin -p -h 127.0.0.1 -P 6032 --prompt='ProxySQLAdmin> '
    • -u指定咱們要鏈接的用戶,這裏是admin,管理任務的默認用戶,例如更改配置設置。
    • -h 127.0.0.1告訴mysql鏈接到本地ProxySQL實例。咱們須要明肯定義它,由於ProxySQL不會監聽mysql默認狀況下假定的套接字文件。
    • -P指定要鏈接的端口。ProxySQL的管理界面監聽6032。
    • --prompt是一個可選標誌,用於更改默認提示,一般是這樣mysql>。在這裏,咱們將其更改成ProxySQLAdmin>顯示咱們已鏈接到ProxySQL管理界面。這將有助於避免之後在咱們也將鏈接到複製數據庫服務器上的MySQL接口時出現混淆。

    鏈接後,您將看到ProxySQLAdmin>提示:

    ProxySQL administration console prompt
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.5.30 (ProxySQL Admin Module)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    ProxySQLAdmin>

    經過更新(UPDATE)數據庫中的admin-admin_credentials配置變量來更改管理賬戶密碼global_variables。請記住將password如下命令更改成您選擇的強密碼。

    UPDATE global_variables SET variable_value='admin:password' WHERE variable_name='admin-admin_credentials';
    Output
    Query OK, 1 row affected (0.00 sec)

    因爲ProxySQL的配置系統如何工做,此更改不會當即生效。它由三個獨立的層組成:

    內存,在從命令行界面進行修改時會被更改。
    運行時,ProxySQL使用它做爲有效配置。
    disk,用於使配置在從新啓動時保持不變。
    如今,你所作的改變是在記憶中。要使更改生效,您必須將內存設置複製到運行時領域,而後將它們保存到磁盤以使其保持不變。

    LOAD ADMIN VARIABLES TO RUNTIME;
    SAVE ADMIN VARIABLES TO DISK;

    這些ADMIN命令僅處理與管理命令行界面相關的變量。ProxySQL公開相似的命令,例如MYSQL,處理其配置的其餘部分。咱們將在本教程後面使用它們。

    如今ProxySQL已經安裝並運行了新的管理員密碼,讓咱們設置3個MySQL節點,以便ProxySQL能夠監控它們。可是,請保持ProxySQL接口處於打開狀態,由於咱們稍後會使用它。

    第3步 - 在MySQL中配置監控

    ProxySQL須要與MySQL節點通訊才能評​​估其情況。爲此,它必須可以與專用用戶鏈接到每一個服務器。

    在這裏,咱們將在MySQL節點上配置必要的用戶並安裝容許ProxySQL查詢組複製狀態的其餘SQL函數。

    因爲MySQL組複製已在運行,所以必須僅對該組的單個成員執行如下步驟。

    在第二個終端中,使用其中一個MySQL節點登陸服務器。

    ssh sammy@your_mysql_server_ip_1

    下載包含一些必要功能的SQL文件,以便ProxySQL組複製支持工做。

    curl -OL https://gist.github.com/lefred/77ddbde301c72535381ae7af9f968322/raw/5e40b03333a3c148b78aa348fd2cd5b5dbb36e4d/addition_to_sys.sql

    注意:此文件由ProxySQL做者提供,可是以臨時方式提供:它是我的GitHub存儲庫中的要點,這意味着它可能會移動或變得過期。未來,它可能會做爲官方ProxySQL存儲庫中的版本化文件添加。

    您能夠在做者的博客文章中閱讀有關此文件的上下文和內容的更多信息,內容涉及MySQL組複製的本機ProxySQL支持。

    您可使用查看文件的內容less addition_to_sys.sql。

    準備好後,執行文件中的命令。系統將提示您輸入MySQL管理密碼。

    mysql -u root -p < addition_to_sys.sql

    若是命令成功運行,則不會產生任何輸出。在這種狀況下,全部MySQL節點如今將公開ProxySQL的必要功能,以識別組複製狀態。

    接下來,咱們必須建立一個專用用戶,ProxySQL將使用該用戶來監視實例的運行情況。

    打開MySQL交互式提示,它將再次提示您輸入root密碼。

    mysql -u root -p

    而後建立專用用戶,咱們在這裏稱爲監視器。確保將密碼更改成強密碼。

    CREATE USER 'monitor'@'%' IDENTIFIED BY 'monitorpassword';

    授予用戶權限以向監視器用戶查詢MySQL服務器的情況。

    GRANT SELECT on sys.* to 'monitor'@'%';

    最後,應用更改。

    FLUSH PRIVILEGES;

    因爲組複製,一旦您將用於運行情況監視的用戶添加到一個MySQL節點,它將在全部三個節點上徹底配置。

    接下來,咱們須要使用該用戶的信息更新ProxySQL,以便它能夠訪問MySQL節點。

    步驟4 - 在ProxySQL中配置監控

    要在監控節點時將ProxySQL配置爲使用新用戶賬戶,咱們將提供UPDATE相應的配置變量。這與咱們從步驟2設置管理員密碼的方式很是類似。

    回到ProxySQL管理界面,將mysql-monitor_username變量更新爲新賬戶的用戶名。

    UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';

    與之前同樣,配置不會自動應用,所以將其遷移到運行時並保存到磁盤。這一次,請注意咱們正在使用MYSQL而不是ADMIN更新這些變量,由於咱們正在修改MySQL配置變量。

    LOAD MYSQL VARIABLES TO RUNTIME;
    SAVE MYSQL VARIABLES TO DISK;

    監控賬戶在全部端都配置,下一步是告訴ProxySQL有關節點自己的信息。

    步驟5 - 將MySQL節點添加到ProxySQL服務器池

    爲了讓ProxySQL知道咱們的三個MySQL節點,咱們須要告訴ProxySQL如何在它們指定的節點集的主機組之間分發它們。每一個主機組由正數標識,如1或2。使用ProxySQL查詢路由時,主機組能夠將不一樣的SQL查詢路由到不一樣的主機集。

    在靜態複製配置中,能夠任意設置主機組。可是,ProxySQL的組複製支持會自動將複製組中的全部節點劃分爲四種邏輯狀態:

    writers,它是能夠接受更改數據的查詢的MySQL節點。ProxySQL確保將全部主節點維持在此組中的最大定義數量。
    備份編寫器,也是能夠接受更改數據的查詢的MySQL節點。可是,這些節點不被指定爲編寫器; 超過定義的維護編寫器數量的主節點保留在該組中,若是其中一個編寫器失敗,則被提高爲編寫器。
    讀者是MySQL節點,不能接受更改數據的查詢,應該用做只讀節點。ProxySQL只在此處放置從屬節點。

    離線,用於因爲缺少鏈接或流量緩慢等問題而致使行爲不正常的節點。
    這四種狀態中的每一種都具備相應的主機組,但不會自動分配數字組標識符。

    總而言之,咱們須要告訴ProxySQL它應該爲每一個狀態使用哪些標識符。在這裏,咱們使用1了離線主機組,2對做家主機組,3爲讀者主機組,並4爲備份做家主機組。

    要設置這些標識符,請在mysql_group_replication_hostgroups配置表中建立包含這些變量和值的新行。

    INSERT INTO mysql_group_replication_hostgroups (writer_hostgroup, backup_writer_hostgroup, reader_hostgroup, offline_hostgroup, active, max_writers, writer_is_also_reader, max_transactions_behind) VALUES (2, 4, 3, 1, 1, 3, 1, 100);

    這些是此行中設置的附加變量以及每一個變量的做用:

    active設置爲1啓用ProxySQL監視這些主機組。
    max_writers定義有多少節點能夠充當編寫器。咱們3在這裏使用是由於在多主配置中,全部節點均可以被視爲相等,因此咱們在這裏使用3(節點總數)。
    writer_is_also_reader設置爲1指示ProxySQL也將編寫者視爲讀者。
    max_transactions_behind設置節點被分類爲脫機以前的最大延遲事務數。\

    注:因爲咱們的示例使用在全部節點均可以寫入到數據庫中的多主拓撲中,咱們將跨越平衡全部SQL查詢做家主機組。在其餘拓撲中,寫入(主)節點和讀取器(輔助)節點之間的劃分能夠將只讀查詢路由到不一樣於寫入查詢的節點/主機組。ProxySQL不會自動執行此操做,但您可使用規則設置查詢路由。

    如今ProxySQL知道如何跨主機組分發節點,咱們能夠將MySQL服務器添加到池中。爲此,咱們須要將INSERT每一個服務器的IP地址和初始主機組放入mysql_servers表中,其中包含ProxySQL能夠與之交互的服務器列表。

    添加三個MySQL服務器中的每個,確保替換如下命令中的示例IP地址。

    INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (2, '203.0.113.1', 3306);
    INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (2, '203.0.113.2', 3306);
    INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (2, '203.0.113.3', 3306);

    這裏,該2值最初將全部這些節點設置爲編寫器,並3306設置默認的MySQL端口。

    與之前同樣,將這些更改遷移到運行時並將其保存到磁盤以使更改生效。

    LOAD MYSQL SERVERS TO RUNTIME;
    SAVE MYSQL SERVERS TO DISK;

    ProxySQL如今應該按照指定在主機組中分佈咱們的節點。讓咱們經過SELECT對runtim330e_mysql_servers表執行查詢來檢查,該表公開了ProxySQL正在使用的服務器的當前狀態。

    SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;
    Output
    +--------------+-------------+--------+
    | hostgroup_id | hostname    | status |
    +--------------+-------------+--------+
    | 2            | 203.0.113.1 | ONLINE |
    | 2            | 203.0.113.2 | ONLINE |
    | 2            | 203.0.113.3 | ONLINE |
    | 3            | 203.0.113.1 | ONLINE |
    | 3            | 203.0.113.2 | ONLINE |
    | 3            | 203.0.113.3 | ONLINE |
    +--------------+-------------+--------+
    6 rows in set (0.01 sec)

    在結果表中,每一個服務器都列出兩次:每一個服務器一次列出主機組ID, 2並3指示全部三個節點都是編寫器和讀取器。全部節點都已標記ONLINE,這意味着它們已準備好使用。

    可是,在咱們使用它們以前,咱們必須配置用戶憑據以訪問每一個節點上的MySQL數據庫。

    第6步 - 建立MySQL用戶

    ProxySQL充當負載均衡器; 最終用戶鏈接到ProxySQL,ProxySQL依次將鏈接傳遞給所選的MySQL節點。爲了鏈接到單個節點,ProxySQL重用它所訪問的憑據。

    要容許訪問位於複製節點上的數據庫,咱們須要建立一個與ProxySQL具備相同憑據的用戶賬戶,併爲該用戶授予必要的權限。

    與步驟3中同樣,必須僅對組中的單個成員執行如下步驟。您能夠選擇任何一個成員。

    建立一個名爲playgrounduser的新用戶,該用戶使用密碼標識playgroundpassword。

    CREATE USER 'playgrounduser'@'%' IDENTIFIED BY 'playgroundpassword';

    授予其playground從原始組複製教程徹底訪問測試數據庫的權限。

    GRANT ALL PRIVILEGES on playground.* to 'playgrounduser'@'%';

    而後應用更改並退出提示。

    FLUSH PRIVILEGES;
    EXIT;

    您能夠經過直接在節點上嘗試使用新配置的憑據來驗證用戶是否已正確建立。

    使用新用戶從新打開MySQL界面,這將提示您輸入密碼。

    mysql -u playgrounduser -p

    登陸後,對playground數據庫執行測試查詢。

    SHOW TABLES FROM playground;
    Output
    +----------------------+
    | Tables_in_playground |
    +----------------------+
    | equipment            |
    +----------------------+
    1 row in set (0.00 sec)

    數據庫中可見的equipment表列表顯示了在原始複製教程中建立的表,確認用戶已在節點上正確建立。

    您如今能夠斷開與MySQL接口的鏈接,但要保持終端與服務器的鏈接打開。咱們將在最後一步中使用它來運行測試。

    EXIT;

    如今咱們須要在ProxySQL服務器中建立相應的用戶。

    第7步 - 建立ProxySQL用戶

    最後的配置步驟是容許與playgrounduser用戶鏈接到ProxySQL ,並將這些鏈接傳遞給節點。

    爲此,咱們須要在mysql_users表中設置配置變量,其中包含用戶憑據信息。在ProxySQL接口,添加用戶名,密碼,和默認主機組的配置數據庫(其是2,對於做家主機組)

    INSERT INTO mysql_users(username, password, default_hostgroup) VALUES ('playgrounduser', 'playgroundpassword', 2);

    將配置遷移到運行時並保存到磁盤以使新配置生效。

    LOAD MYSQL USERS TO RUNTIME;
    SAVE MYSQL USERS TO DISK;

    要驗證咱們是否可使用這些憑據鏈接到數據庫節點,請打開另外一個終端窗口並經過SSH鏈接到ProxySQL服務器。咱們之後仍然須要管理提示,因此不要關閉它。

    ssh sammy@your_proxysql_server_ip

    ProxySQL在端口上偵聽6033傳入的客戶端鏈接,所以請嘗試使用playgrounduser和port 鏈接到真實數據庫(而不是管理界面)6033。系統將提示您輸入密碼,這playgroundpassword在咱們的示例中。

    mysql -u playgrounduser -p -h 127.0.0.1 -P 6033 --prompt='ProxySQLClient> '

    在這裏,咱們設置提示,ProxySQLClient>以便咱們能夠將其與管理界面提示區分開來。咱們將在測試最終配置時使用它們。

    提示應該打開,這意味着ProxySQL自己已接受憑據。

    ProxySQL client prompt
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 31
    Server version: 5.5.30 (ProxySQL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    ProxySQLClient>

    讓咱們執行一個簡單的語句來驗證ProxySQL是否會鏈接到其中一個節點。此命令在數據庫中查詢其運行的服務器的主機名,並返回服務器主機名做爲惟一輸出。

    SELECT @@hostname;

    根據咱們的配置中,這個查詢應該由ProxySQL被引導到咱們分配到三個節點的一個做家主機組。輸出應以下所示,其中member1一個MySQL節點的主機名。

    Output
    +------------+
    | @@hostname |
    +------------+
    | member1    |
    +------------+
    1 row in set (0.00 sec)

    這樣就完成了容許ProxySQL在三個MySQL節點之間加載平衡鏈接的配置。

    在最後一步中,咱們將驗證ProxySQL是否能夠在數據庫上執行讀寫語句,而且即便某些節點出現故障也會處理查詢。

    步驟8 - 驗證ProxySQL配置

    咱們知道ProxySQL和MySQL節點之間的鏈接正在工做,所以最終的測試是確保數據庫權限容許來自ProxySQL的讀寫語句,並確保在某些節點中仍然執行這些語句小組失敗了。

    SELECT在ProxySQL客戶端提示符中執行語句以驗證咱們是否能夠從playground數據庫中讀取數據。

    SELECT * FROM playground.equipment;

    輸出應相似於如下內容,包含在組複製教程中建立的三個項目。這意味着咱們經過ProxySQL成功地從MySQL數據庫中讀取數據。

    Output
    +----+--------+-------+--------+
    | id | type   | quant | color  |
    +----+--------+-------+--------+
    |  3 | slide  |     2 | blue   |
    | 10 | swing  |    10 | yellow |
    | 17 | seesaw |     3 | green  |
    +----+--------+-------+--------+
    3 rows in set (0.00 sec)

    接下來,嘗試經過在表明5個紅鑽的表中插入一些新數據來編寫。

    INSERT INTO playground.equipment (type, quant, color) VALUES ("drill", 5, "red");

    而後從新執行上一個SELECT命令以驗證是否已插入數據。

    SELECT * FROM playground.equipment;

    輸出中的新鑽取線意味着咱們經過ProxySQL成功地將數據寫入MySQL數據庫。

    Output
    +----+--------+-------+--------+
    | id | type   | quant | color  |
    +----+--------+-------+--------+
    |  3 | slide  |     2 | blue   |
    | 10 | swing  |    10 | yellow |
    | 17 | seesaw |     3 | green  |
    | 24 | drill  |     5 | red    |
    +----+--------+-------+--------+
    4 rows in set (0.00 sec)

    咱們知道ProxySQL如今能夠徹底使用數據庫,可是若是服務器出現故障會怎麼樣?

    從其中一個MySQL服務器的命令行,中止MySQL進程以模擬故障。

    systemctl stop mysql

    數據庫中止後,嘗試equipment再次從ProxySQL客戶端提示符中查詢表中的數據。

    SELECT * FROM playground.equipment;

    輸出不該改變; 你仍然應該像之前同樣看到設備清單。這意味着ProxySQL注意到其中一個節點出現故障並切換到另外一個節點以執行該語句。

    咱們能夠經過runtime_mysql_servers從ProxySQL管理提示中查詢表來檢查,如步驟5中所示。

    SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;

    輸出將以下所示:

    Output
    +--------------+-------------+---------+
    | hostgroup_id | hostname    | status  |
    +--------------+-------------+---------+
    | 1            | 203.0.113.1 | SHUNNED |
    | 2            | 203.0.113.2 | ONLINE  |
    | 2            | 203.0.113.3 | ONLINE  |
    | 3            | 203.0.113.2 | ONLINE  |
    | 3            | 203.0.113.3 | ONLINE  |
    +--------------+-------------+---------+
    6 rows in set (0.01 sec)

    咱們中止的節點如今被避開,這意味着它暫時被認爲是沒法訪問的,所以全部流量將分佈在剩餘的兩個在線節點上。

    ProxySQL將持續監視此節點的狀態,若是行爲正常則將其恢復爲聯機狀態,或者若是超過咱們在步驟4中設置的超時閾值,則將其標記爲脫機。

    咱們來測試這個監控。切換回MySQL服務器並從新啓動節點。

    systemctl start mysql

    稍等片刻,而後runtime_mysql_servers再次從ProxySQL管理提示中查詢該表。

    SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;

    ProxySQL會很快注意到該節點再次可用並將其標記爲在線:

    Output
    +--------------+-------------+--------+
    | hostgroup_id | hostname    | status |
    +--------------+-------------+--------+
    | 2            | 203.0.113.1 | ONLINE |
    | 2            | 203.0.113.2 | ONLINE |
    | 2            | 203.0.113.3 | ONLINE |
    | 3            | 203.0.113.1 | ONLINE |
    | 3            | 203.0.113.2 | ONLINE |
    | 3            | 203.0.113.3 | ONLINE |
    +--------------+-------------+--------+
    6 rows in set (0.01 sec)

    您可使用另外一個節點(或其中兩個節點)重複此測試,以肯定若是至少有一個節點啓動,您將可以自由地將數據庫用於只讀和讀寫訪問。

    結論

    在本教程中,您將ProxySQL配置爲在多主組複製拓撲中跨多個啓用寫入的MySQL節點對SQL查詢進行負載平衡。這種配置能夠經過在多個服務器之間分配負載來提升大量數據庫使用的性能。它還能夠在其中一個數據庫服務器脫機時提供故障轉移功能。

    可是,咱們這裏僅以一個節點拓撲爲例。ProxySQL還爲許多其餘MySQL拓撲提供了強大的查詢緩存,路由和性能分析。您能夠在官方ProxySQL博客和ProxySQL wiki上閱讀有關ProxySQL功能以及如何解決不一樣數據庫管理問題的更多信息。

    翻譯:Yujiaao

    相關文章
    相關標籤/搜索