如何在 Debian 11 上使用 ProxySQL 安装负载平衡 MySQL 服务器如何在 Debian 11 上使用 ProxySQL 安装负载平衡 MySQL 服务器如何在 Debian 11 上使用 ProxySQL 安装负载平衡 MySQL 服务器如何在 Debian 11 上使用 ProxySQL 安装负载平衡 MySQL 服务器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11 上使用 ProxySQL 安装负载平衡 MySQL 服务器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

ProxySQL 是一种占用空间小的高性能 MySQL 代理,可以安装在 VM、K8s、裸机和 Docker 容器等多种环境中。 ProxySQL 是一种开源解决方案,通过支持连接复用为 MySQL 集群提供高可用性,提供查询规则以将写入路由到主节点,并跨副本分发读取。

ProxySQL 支持 AMD64 (x86_64) 和 ARM64 兼容。它为您的应用程序提供应用程序层代理,还提供带有故障转移检测的高级查询。

在本指南中,您将在 Debian 11 服务器上通过 ProxySQL 安装并设置 MySQL 集群的负载平衡。您将使用 percona XtraDB 客户端安装 ProxySQL v2,然后将 Percona XtraDB 集群添加到 ProxySQL,设置 ProxySQL 监控用户,然后添加将用于您的应用程序的数据库和用户。

先决条件

要开始使用本指南,您必须满足以下要求:

  • 运行 Debian 11 系统的 Linux 服务器 - 本示例使用主机名为“proxysql-deb”的 Debian 服务器。
  • 具有 sudo/root 管理员权限的非 root 用户。
  • 完全配置的 MySQL 集群或 Percona XtraDB 集群。

就是这样。当所有要求都准备好后,您现在可以开始 ProxySQL 安装。

设置存储库

对于本指南,您必须执行的第一步是将 ProxySQL 和 Percona XtraDB 存储库添加到您的服务器。 Percona XtraDB 存储库将用于安装 ProxySQL 所需的“percona-xtradb-cluster-client”包。

首先,输入以下 apt 命令来安装一些基本依赖项。出现提示时输入 y,然后按 ENTER 继续。

sudo apt install wget gnupg2 lsb-release curl apt-transport-https ca-certificates

接下来,下载 Percona XtraDB 的存储库文件并通过下面的“dpkg”命令安装它。

wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb

现在使用以下 apt 命令更新并刷新您的 Debian 软件包索引。您应该看到新的 Percona XdtraDB 存储库已添加。

sudo apt update

然后,输入“percona-release”命令以启用 Percona XtraDB Cluster 8.0 存储库。

sudo percona-release setup pxc80

添加 Percona XtraDB 存储库后,现在运行以下命令来添加 ProxySQL 的 GPG 密钥和存储库。

wget -q -nv -O /etc/apt/trusted.gpg.d/proxysql-2.4.x-keyring.gpg 'https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/repo_pub_key.gpg'
echo deb https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/$(lsb_release -sc)/ ./ | tee /etc/apt/sources.list.d/proxysql.list

再次更新并刷新您的 Debian 软件包索引以应用新的存储库。

sudo apt update

添加 Percona XtraDB 和 ProxySQL 存储库后,您可以安装 ProxySQL 和 Percona XtraDB 客户端包。

安装 ProxySQL 和 Percona XtraDB 集群客户端

在本部分中,您将安装 ProxySQL v2 包和 Percona XtraDB 客户端包。输入以下 apt 命令来安装 ProxySQL 和 Percona XtraDB 客户端包。

sudo apt install proxysql2 percona-xtradb-cluster-client

出现提示时,输入 y 进行确认,然后按 ENTER 继续。

ProxySQL安装后会自动运行并在系统启动时自动启动。输入以下 systemctl 命令实用程序以验证 ProxySQL 服务状态。

sudo systemctl is-enabled proxysql
sudo systemctl start proxysql

输出“启用”确认 ProxySQL 将在系统启动时自动启动。输出“活动(正在运行)”确认 ProxySQL 正在运行。

接下来,输入以下 mysql 命令,使用默认用户和密码“admin”登录 ProxySQL 服务器。

mysql -u admin -padmin -h 127.0.0.1 -P 6032 --prompt='proxysql-deb> '

成功后,您应该获得如下所示的 ProxySQL shell。您已通过 Percona XtraDB 客户端连接到 ProxySQL 管理模块。

现在输入以下查询以获取 ProxySQL 服务器上的数据库列表。您应该会看到 ProxySQL 服务器上有多个可用数据库。

SHOW DATABASES;

安装 ProxySQL 服务器和 Percona XtraDB Cluster 客户端后,您就可以将 MySQL 或 Percona XtraDB Cluster 添加到 ProxySQL 服务器并设置负载平衡。

将 MySQL Cluster/Percona XtraDB Cluster 添加到 ProxySQL

安装 ProxySQL 服务器后必须执行的第一步是将 MySQL 或 percona XtraDB Cluster 添加到 ProxySQL 服务器。这可以通过 ProxySQL shell 来实现。此示例使用 Percona XtraDB Cluster 并具有以下详细信息:

Hostname    IP Address      Port
---------------------------------
pxc01       192.168.5.15    3306
pxc02       192.168.5.16    3306
pxc03       192.168.5.17    3306

在开始之前,请确保您已登录到 ProxySQL shell。然后,输入以下查询将 MySQL 服务器添加到 ProxySQL。请务必使用您的 MySQL 集群详细信息更改 IP 地址和端口的详细信息。

INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.15',3306);
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.16',3306);
INSERT INTO mysql_servers(hostgroup_id, hostname, port) VALUES (0,'192.168.5.17',3306);

输出“查询正常,1 行受影响”确认 MySQL 服务器已添加到 ProxySQL 服务器。

输入以下查询以验证 ProxySQL 上可用的 MySQL 服务器列表。您应该看到 ProxySQL 服务器中添加了三台 MySQL 服务器。

SELECT * FROM mysql_servers;

将 MySQL 或 Percona XtraDB 集群添加到 ProxySQL 后,接下来需要在 ProxySQL 上设置对 Percona XtraDB 集群的监控。

设置ProxySQL监控用户

为了确保 MySQL 或 Percona XtraDB Cluster 正常运行,ProxySQL 将持续监控所有可用 MySQL 服务器的后端。为此,您必须在 percona XtraDB Cluster 上创建一个新用户,然后在 ProxySQL 服务器上定义监控用户。

登录到 Percona XtraDB Cluster 服务器,通过“mysql”命令访问 MySQL shell,然后执行以下 MySQL 查询以创建一个密码为“monitor”的新用户“monitor”。

CREATE USER 'monitor'@'%' IDENTIFIED WITH mysql_native_password by 'monitor';
GRANT USAGE ON *.* TO 'monitor'@'%';
FLUSH PRIVILEGES;
SELECT USER,host FROM mysql.user;
SHOW GRANTS FOR 'monitor'@'%';

接下来,移动到 ProxySQL 服务器并执行以下查询来定义将用于监控 Percona XtraDB Cluster 的用户。这会将默认变量“mysql-monitor_username”更改为用户“monitor”,并将“mysql-monitor_password”变量更改为密码“monitor” >'。

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

输入以下查询以更新一些用于监视 ProxySQL 服务器上的 Percona XtraDB 集群的附加参数。

UPDATE global_variables SET variable_value='2000' WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');

通过执行以下查询,保存您对 ProxySQL 服务器中的“global_variables”所做的更改。

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

您应该收到这样的输出。

现在运行以下查询来验证 ProxySQL 服务器上“mysql-monitor_”的“global_variables”列表。

SELECT * FROM global_variables WHERE variable_name LIKE 'mysql-monitor_%';

您应该得到如下屏幕截图所示的输出 - 变量“mysql-monitor_username”的值必须为用户“monitor”,变量“mysql-monitor_password”的密码为“monitor”。此外,您还可以看到变量“mysql-monitor_connect_interval”、“mysql-monitor_ping_interval”、“mysql-monitor_read_only_interval”的值已更改为“2000”。

最后,输入以下查询来验证 ProxySQL 服务器上 Percona XtraDB 集群的监控状态。这将向您显示上次日志状态的日志以及从 ProxySQL 服务器到所有可用 Percona XtraDB Cluster 服务器的上次 ping 操作。

SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 6;
SELECT * FROM monitor.mysql_server_ping_log ORDER BY time_start_us DESC LIMIT 6;

成功后,您应该收到这样的输出。

ProxySQL 服务器到 Percona XtraDB Cluster 的最后连接日志。

ProxySQL 服务器对 Percona XtraDB Cluster 的最后一次 ping 记录。

通过 ProxySQL 服务器监控 MySQL 或 Percona XtraDB 集群,您现在可以开始设置应用程序将使用的新用户。

为应用程序设置数据库用户

安装和配置 ProxySQL 服务器,并将 MySQL 或 Percona XtraDB Cluster 添加为数据库后端后,您现在将设置一个应用程序将使用的新用户。因此,您的应用程序不应直接连接到 MySQL 服务器,而应连接到默认在端口“6033”上运行的 ProxySQL 服务器。

要为您的应用程序设置新用户,您必须执行以下步骤:

  • 在 MySQL 集群或 Percona XtraDB 集群上创建新用户并设置权限。
  • 将您的 Percona XtraDB Cluster 用户添加到 ProxySQL 服务器 - 插入表“mysql_users”。

首先,返回 Percona XtraDB Cluster 服务器并通过 root 用户登录 MySQL shell。然后,创建一个新的 MySQL 用户并通过输入以下查询授予该用户访问所有数据库的权限。在此示例中,您将创建一个新用户“sbuser”,密码为“sbpass”。另外,请务必将 IP 地址“192.168.5.85”更改为 ProxySQL 服务 IP 地址。

CREATE USER 'sbuser'@'192.168.5.85' IDENTIFIED WITH mysql_native_password by 'sbpass';
GRANT ALL PRIVILEGES ON *.* TO 'sbuser'@'192.168.5.85';
FLUSH PRIVILEGES;

接下来,返回 ProxySQL 服务器并运行以下查询以将新的 MySQL 用户添加到 ProxySQL 服务器。您的 MySQL 用户应添加到 ProxySQL 服务器上的“mysql_users”表中。另外,在撰写本文时,ProxySQL 服务器尚不支持加密密码。

INSERT INTO mysql_users (username,password) VALUES ('sbuser','sbpass');

现在输入以下查询以确认更改并将更改保存在 ProxySQL 服务器上。这样,您的新用户就准备好了,您可以在您的应用程序中使用该 MySQL 用户。

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

这样,您的应用程序现在应该使用用户“sbuser”和密码“sbpass”以及端口 6033 连接到 ProxySQL 服务器。

验证数据库和用户

在本部分中,您将通过使用您创建的用户和密码连接到 ProxySQL 服务器来验证 ProxySQL 安装。

输入以下“mysql”命令,使用新用户“sbuser”和密码“sbpass”登录 ProxySQL 服务器。成功后,您应该看到 ProxySQL 服务器 shell。

mysql -u sbuser -psbpass -h 127.0.0.1 -P 6033 --prompt='proxysql-deb> '

输入以下查询来检查 Percona XtraDB 集群上的数据库列表。在此示例中,Percona XtraDB 集群上有一个数据库“percona”。

show databases;

通过下面的“USE”查询切换到数据库“percona”。

use percona

接下来,输入以下查询来检查数据库“percona”上的列表。然后,检索您正在使用的当前数据库的可用数据。

show tables;
select * from example;

您应该收到如下输出 - 可以从 ProxySQL 服务器访问存储在 Percona XtraDB 集群中的数据库。这意味着您已成功安装 ProxySQL 作为 Percona XtraDB 集群的负载均衡器。

接下来,输入以下查询以将新数据插入数据库“percona”和表“example”。

INSERT INTO percona.example VALUES (4, 'pxc04');
INSERT INTO percona.example VALUES (5, 'pxc05');

然后,使用以下查询再次验证新更新的数据。如果成功,您应该会在表“示例”中获得可用的新数据。这确认您的用户可以读取和写入 Percona XtraDB Cluster 上的数据库。

select * from example;

最后,为了确保您的新数据在 Percona XtraDB Cluster 上更新,您必须直接从 Percona XtraDB Cluster 服务器进行验证。

登录到 Percona XtraDB Cluster 服务器,通过 root 用户访问 MySQL shell,然后运行以下查询以从数据库“percona”表“example”检索数据。

select * from percona.example;

成功后,您应该会获得通过 ProxySQL 服务器添加的新数据。

考虑到这一点,您安装 ProxySQL 服务器作为 MySQL Cluster 或 Percona XtraDB Cluster 的负载均衡器就成功了。

结论

在本指南中,您通过 Debian 11 服务器上的 ProxySQL 配置了 MySQL 集群或 Percona XtraDB 集群的负载平衡。您已安装 ProxySQLv2,将 Percona XtraDB 集群添加到 ProxySQL,并在 ProxySQL 上配置 Percona XtraDB 集群监控。

除此之外,您还创建并配置了可用于您的应用程序的 MySQL 或 Percona XtraDB Cluster 用户。您还通过 ProxySQL 验证了 MySQL Cluster 或 Percona XtraDB Cluster 的负载平衡,从而实现了数据库服务器和应用程序的高可用性和容错能力。

这样,您现在可以向负载平衡数据库服务器添加更多 percona XtraDB Cluster 节点。此外,您还可以通过 ProxySQL 设置读/写拆分、设置 ProxySQL 分片以及设置从 proxySQL 到 Percona XtraDB 集群的 SSL 连接。要了解有关 ProxySQL 的更多信息,请访问 ProxySQL 的官方文档。

©2015-2025 Norria support@norria.com