MySQL Proxy · 11 min read · Sep 26, 2025

Como Instalar um Servidor MySQL com Balanceamento de Carga usando ProxySQL no Debian 11

ProxySQL é um proxy MySQL de alto desempenho com uma pequena pegada que pode ser instalado em múltiplos ambientes, como VM, K8s, bare-metal e contêineres Docker. ProxySQL é uma solução de código aberto que fornece alta disponibilidade para seu Cluster MySQL com suporte a multiplexação de conexões, fornece Regras de consulta para direcionar gravações para primários e distribui leituras entre réplicas.

ProxySQL suporta tanto AMD64 (x86_64) quanto ARM64. Ele fornece um proxy de camada de aplicativo para seu aplicativo e também fornece consultas avançadas com detecção de falhas.

Neste guia, você instalará e configurará o balanceamento de carga do Cluster MySQL via ProxySQL em um servidor Debian 11. Você instalará o ProxySQL v2 com o cliente Percona XtraDB, em seguida, adicionará o Cluster Percona XtraDB ao ProxySQL, configurará o usuário de monitoramento do ProxySQL e, em seguida, adicionará o banco de dados e o usuário que serão usados para seus aplicativos.

Pré-requisitos

Para começar com este guia, você deve ter os seguintes requisitos:

  • Um servidor Linux executando o sistema Debian 11 - Este exemplo usa um servidor Debian com o nome do host ‘proxysql-deb‘.
  • Um usuário não-root com privilégios de administrador sudo/root.
  • Cluster MySQL ou Cluster Percona XtraDB totalmente configurado.

É isso. Quando todos os requisitos estiverem prontos, você pode começar a instalação do ProxySQL.

Configurar Repositórios

O primeiro passo que você deve fazer para este guia é adicionar os repositórios do ProxySQL e do Percona XtraDB ao seu servidor. O repositório do Percona XtraDB será usado para instalar o pacote ‘percona-xtradb-cluster-client‘, que o ProxySQL requer.

Para começar, instale algumas dependências básicas digitando o seguinte comando apt. Digite y quando solicitado e pressione ENTER para prosseguir.

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

instalar deps básicas

Em seguida, baixe o arquivo do repositório para o Percona XtraDB e instale-o via o comando ‘dpkg‘ abaixo.

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

instalar repositório percona

Agora atualize e atualize seu índice de pacotes Debian usando o seguinte comando apt abaixo. Você deve ver que o novo repositório Percona XdtraDB foi adicionado.

sudo apt update

Em seguida, digite o comando ‘percona-release‘ para habilitar o repositório do Cluster Percona XtraDB 8.0.

sudo percona-release setup pxc80

habilitar repositório percona

Com o repositório Percona XtraDB adicionado, agora execute o seguinte comando para adicionar a chave GPG e o repositório para o ProxySQL.

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

Atualize e atualize novamente seu índice de pacotes Debian para aplicar o novo repositório.

sudo apt update

adicionar repositório proxysql

Com os repositórios do Percona XtraDB e do ProxySQL adicionados, você pode instalar os pacotes do ProxySQL e do cliente Percona XtraDB.

Instalando o ProxySQL e o Cliente do Cluster Percona XtraDB

Nesta seção, você instalará o pacote ProxySQL v2 com o pacote cliente Percona XtraDB. Digite o seguinte comando apt para instalar ambos os pacotes do ProxySQL e do cliente Percona XtraDB.

sudo apt install proxysql2 percona-xtradb-cluster-client

Quando solicitado, digite y para confirmar e pressione ENTER para prosseguir.

instalar proxysql

Uma vez que o ProxySQL está instalado, ele será executado automaticamente e iniciará automaticamente na inicialização do sistema. Digite o seguinte comando systemctl para verificar o status do serviço ProxySQL.

sudo systemctl is-enabled proxysql  
sudo systemctl start proxysql

Uma saída ‘enabled‘ confirma que o ProxySQL iniciará automaticamente na inicialização do sistema. E a saída ‘active (running)‘ confirma que o ProxySQL está em execução.

status proxysql

Em seguida, digite o seguinte comando mysql para fazer login no servidor ProxySQL com o usuário e senha padrão ‘admin‘.

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

Uma vez bem-sucedido, você deve obter o shell do ProxySQL como o seguinte. Você se conectou ao módulo de administração do ProxySQL via o cliente Percona XtraDB.

login percona xtradb

Agora digite a seguinte consulta para obter a lista de bancos de dados no servidor ProxySQL. Você deve ver múltiplos bancos de dados disponíveis no servidor ProxySQL.

SHOW DATABASES;

lista de bancos de dados

Com o servidor ProxySQL e o cliente do Cluster Percona XtraDB instalados, você está pronto para adicionar o MySQL ou o Cluster Percona XtraDB ao servidor ProxySQL e configurar o balanceamento de carga.

Adicionando o Cluster MySQL/Cluster Percona XtraDB ao ProxySQL

O primeiro passo que você deve fazer após instalar o servidor ProxySQL é adicionar seu MySQL ou Cluster Percona XtraDB ao servidor ProxySQL. E isso pode ser alcançado via shell do ProxySQL. Este exemplo usa o Cluster Percona XtraDB com os seguintes detalhes:

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

Antes de começar, certifique-se de que você está logado no shell do ProxySQL. Em seguida, digite as seguintes consultas para adicionar seus servidores MySQL ao ProxySQL. Certifique-se de alterar os detalhes dos endereços IP e portas com os detalhes do seu cluster MySQL.

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);

Uma saída ‘Query OK, 1 row affected‘ confirma que o servidor MySQL foi adicionado ao servidor ProxySQL.

adicionar servidor mysql ao proxysql

Digite a seguinte consulta para verificar a lista de servidores MySQL que estão disponíveis no ProxySQL. Você deve ver três servidores MySQL adicionados ao servidor ProxySQL.

SELECT * FROM mysql_servers;

Com o MySQL ou Cluster Percona XtraDB adicionado ao ProxySQL, você precisará configurar o monitoramento do Cluster Percona XtraDB no ProxySQL.

Configurando o Usuário de Monitoramento do ProxySQL

Para garantir que o MySQL ou o Cluster Percona XtraDB esteja saudável, o ProxySQL monitorará continuamente todos os servidores MySQL disponíveis. Para alcançar isso, você deve criar um novo usuário em seu Cluster Percona XtraDB e, em seguida, definir o usuário de monitoramento no servidor ProxySQL.

Faça login no seu servidor Cluster Percona XtraDB, acesse o shell MySQL via o comando ‘mysql’, e então execute as seguintes consultas MySQL para criar um novo usuário ‘monitor’ com a senha ‘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'@'%';

Em seguida, vá para o servidor ProxySQL e execute a seguinte consulta para definir o usuário que será usado para monitorar o Cluster Percona XtraDB. Isso mudará a variável padrão ‘mysql-monitor_username‘ para o usuário ‘monitor’ e a variável ‘mysql-monitor_password‘ para a senha ‘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';

Digite a seguinte consulta para atualizar alguns parâmetros adicionais para monitorar o Cluster Percona XtraDB no servidor ProxySQL.

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

Salve as alterações que você fez em ‘global_variables‘ dentro do servidor ProxySQL executando as seguintes consultas.

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

Você deve receber uma saída como esta.

Agora execute a seguinte consulta para verificar a lista de ‘global_variables‘ para ‘mysql-monitor_‘ no servidor ProxySQL.

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

Você deve obter uma saída como a seguinte captura de tela - A variável ‘mysql-monitor_username’ deve ter o valor como o usuário ‘monitor’ e a variável ‘mysql-monitor_password’ para a senha é ‘monitor’. Além disso, você pode ver o valor das variáveis ‘mysql-monitor_connect_interval’,’mysql-monitor_ping_interval’,’mysql-monitor_read_only_interval’ alterado para ‘2000‘.

verificar monitoramento proxysql

Por fim, digite as seguintes consultas para verificar o status de monitoramento do Cluster Percona XtraDB no servidor ProxySQL. Isso mostrará os logs do último status de log e o último ping do servidor ProxySQL para todos os servidores disponíveis do Cluster Percona XtraDB.

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;

Quando bem-sucedido, você deve receber uma saída como esta.

Os últimos logs de conexão do servidor ProxySQL para o Cluster Percona XtraDB.

última conexão

Os últimos logs de ping do servidor ProxySQL para o Cluster Percona XtraDB.

ping proxysql

Com o MySQL ou Cluster Percona XtraDB monitorado pelo servidor ProxySQL, você agora está pronto para configurar um novo usuário que seus aplicativos usarão.

Configurando o Usuário do Banco de Dados para Aplicativos

Com o servidor ProxySQL instalado e configurado, e o MySQL ou Cluster Percona XtraDB adicionado como o backend do banco de dados, você agora configurará um novo usuário que seus aplicativos usarão. Assim, em vez de se conectar diretamente ao servidor MySQL, seus aplicativos devem se conectar ao servidor ProxySQL que roda por padrão na porta ‘6033‘.

Para configurar um novo usuário para seus aplicativos, você deve seguir os seguintes passos:

  • Criar um novo usuário no cluster MySQL ou Cluster Percona XtraDB e configurar privilégios.
  • Adicionar seu usuário do Cluster Percona XtraDB ao servidor ProxySQL - inserir na tabela ‘mysql_users‘.

Para começar, volte ao seu servidor Cluster Percona XtraDB e faça login no shell MySQL via o usuário root. Em seguida, crie um novo usuário MySQL e conceda ao usuário privilégios para acessar todos os bancos de dados digitando as seguintes consultas. Neste exemplo, você criará um novo usuário ‘sbuser‘ com a senha ‘sbpass‘. Além disso, certifique-se de alterar o endereço IP ‘192.168.5.85‘ com o endereço IP do servidor ProxySQL.

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;

Em seguida, volte ao servidor ProxySQL e execute a seguinte consulta para adicionar seu novo usuário MySQL ao servidor ProxySQL. Seus usuários MySQL devem ser adicionados à tabela ‘mysql_users‘ no servidor ProxySQL. Além disso, no momento da redação deste documento, o servidor ProxySQL ainda não suporta senha criptografada.

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

Agora digite as seguintes consultas para confirmar e salvar as alterações no seu servidor ProxySQL. Com isso, seu novo usuário está pronto e você pode usar esse usuário MySQL para seus aplicativos.

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

criar usuário proxysql

Com isso, seu aplicativo agora deve se conectar ao servidor ProxySQL com o usuário ‘sbuser‘ e a senha ‘sbpass‘ na porta 6033.

Verificar Banco de Dados e Usuário

Nesta seção, você verificará a instalação do ProxySQL conectando-se ao servidor ProxySQL usando o usuário e a senha que você criou.

Digite o seguinte comando ‘mysql’ para fazer login no servidor ProxySQL com o novo usuário ‘sbuser’ e a senha ‘sbpass’. Quando bem-sucedido, você deve ver o shell do servidor ProxySQL.

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

conectar ao proxysql com novo usuário

Digite a seguinte consulta para verificar a lista de bancos de dados no Cluster Percona XtraDB. Neste exemplo, há um banco de dados ‘percona‘ no Cluster Percona XtraDB.

show databases;

Mude para o banco de dados ‘percona‘ via a consulta ‘USE‘ abaixo.

use percona

mostrar lista de bancos de dados

Em seguida, digite as seguintes consultas para verificar a lista de tabelas no banco de dados ‘percona‘. Então, recupere os dados disponíveis no banco de dados atual em que você está trabalhando.

show tables;  
select * from example;

Você deve receber uma saída como esta - Os bancos de dados que estão armazenados no Cluster Percona XtraDB são acessíveis a partir do servidor ProxySQL. Isso significa que sua instalação do ProxySQL como um balanceador de carga para o Cluster Percona XtraDB foi bem-sucedida.

mostrar tabelas e dados

Em seguida, digite as seguintes consultas para inserir novos dados no banco de dados ‘percona‘ e na tabela ‘example‘.

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

Então, verifique novamente os dados recém-atualizados usando a seguinte consulta. Se bem-sucedido, você deve obter os novos dados disponíveis na tabela ‘example‘. Isso confirma que seu usuário pode ler e escrever em bancos de dados no Cluster Percona XtraDB.

select * from example;

inserir novos dados

Por fim, para garantir que seus novos dados sejam atualizados no Cluster Percona XtraDB, você deve verificar diretamente a partir do servidor Cluster Percona XtraDB.

Faça login no seu servidor Cluster Percona XtraDB, acesse o shell MySQL via o usuário root e, em seguida, execute a seguinte consulta para recuperar os dados da tabela ‘example‘ do banco de dados ‘percona‘.

select * from percona.example;

Quando bem-sucedido, você deve obter os novos dados que você adicionou via o servidor ProxySQL.

verificar dados atualizados

Com isso em mente, sua instalação do servidor ProxySQL como um balanceador de carga para o Cluster MySQL ou Cluster Percona XtraDB foi bem-sucedida.

Conclusão

Neste guia, você configurou um Balanceamento de Carga do Cluster MySQL ou Cluster Percona XtraDB via ProxySQL em um servidor Debian 11. Você instalou o ProxySQLv2, adicionou o Cluster Percona XtraDB ao ProxySQL e configurou o monitoramento do Cluster Percona XtraDB no ProxySQL.

Além disso, você também criou e configurou usuários do MySQL ou Cluster Percona XtraDB que podem ser usados para seus aplicativos. Você também verificou o balanceamento de carga do Cluster MySQL ou Cluster Percona XtraDB via ProxySQL que permite alta disponibilidade e tolerância a falhas do seu servidor de banco de dados e de seus aplicativos.

Com isso, você agora pode adicionar mais nós do Cluster Percona XtraDB ao seu servidor de banco de dados com balanceamento de carga. Além disso, você pode configurar a divisão de leitura/gravação via ProxySQL, configurar o particionamento do ProxySQL e configurar a conexão SSL do ProxySQL para o Cluster Percona XtraDB. Para saber mais sobre o ProxySQL, visite a documentação oficial do ProxySQL.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.