Instalação do Percona MySQL O  Percona MySQL é um banco de dados — o programa responsável por armazenar e organizar todos os dados do sistema (cadastros, configurações, registros, etc.). É uma versão aprimorada do MySQL tradicional, com melhor desempenho e confiabilidade. Pré-requisito: Você deve estar logado como administrador ( sudo su ). Se ainda não fez isso, execute sudo su antes de continuar. 1. Abrindo o Terminal como Administrador sudo su 2. Preparando o Sistema para a Instalação O Percona MySQL exige uma dependência chamada percona-telemetry-agent . Como ela não está disponível diretamente nos repositórios do Ubuntu/Linux Mint, vamos criar um "pacote fictício" para satisfazer esse requisito sem instalar o agente de telemetria real. 2.1 – Instalar o utilitário equivs O equivs é uma ferramenta que permite criar pacotes fictícios para resolver dependências. apt install -y equivs && \ equivs-control percona-telemetry-agent 2.2 – Criar o pacote fictício O bloco abaixo cria um arquivo de configuração descrevendo o pacote fictício: cat << 'EOF' > percona-telemetry-agent Section: misc Priority: optional Standards-Version: 3.9.2 Package: percona-telemetry-agent Version: 1.0 Maintainer: local Description: Dummy package to satisfy Percona dependency EOF Por que fazer isso? O instalador do Percona exige esse componente de telemetria, mas ele não é necessário para o funcionamento do banco de dados. Criando um pacote fictício, enganamos o instalador de forma segura e evitamos instalar software desnecessário. 3. Instalar o Percona MySQL e Configurar a Segurança O comando abaixo faz tudo em sequência: constrói o pacote fictício, o instala, adiciona o repositório oficial do Percona, atualiza a lista de pacotes, instala o banco de dados e inicia o assistente de segurança. Atenção: Antes de exibir o assistente de segurança, o instalador mostrará uma tela pedindo uma senha padrão para o MySQL. Digite a senha desejada e confirme-a quando solicitado. equivs-build percona-telemetry-agent && \ dpkg -i percona-telemetry-agent_1.0_all.deb && \ mkdir -p /etc/apt/keyrings && \ curl -fsSL https://github.com/percona/percona-repositories/raw/main/deb/percona-keyring.gpg | gpg --dearmor -o /etc/apt/keyrings/percona.gpg && \ echo "deb [signed-by=/etc/apt/keyrings/percona.gpg] http://repo.percona.com/ps-84-lts/apt noble main" | tee /etc/apt/sources.list.d/percona-ps-84-lts.list && \ apt update && apt install -y percona-server-server && \ mysql_secure_installation O que esse bloco faz, passo a passo: Monta e instala o pacote fictício criado anteriormente Cria a pasta para guardar a chave de segurança do repositório Percona Baixa e registra a chave oficial do Percona (garante que os pacotes são autênticos) Adiciona o repositório oficial do Percona ao sistema Atualiza a lista de pacotes disponíveis Instala o Percona MySQL Abre o assistente de segurança mysql_secure_installation 4. Respondendo ao Assistente de Segurança ( mysql_secure_installation ) Após a instalação, o terminal exibirá uma série de perguntas para proteger o banco de dados. Siga as respostas indicadas abaixo: Enter password for user root: digite a senha temporária gerada durante a instalação Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: 0 Change the password for root? (Press y|Y for Yes, any other key for No): Y New password: digite a nova senha Re-enter new password: repita a nova senha Do you wish to continue with the password provided? (Press y|Y for Yes, any other key for No): Y Remove anonymous users? (Press y|Y for Yes, any other key for No): Y Disallow root login remotely? (Press y|Y for Yes, any other key for No): No Remove test database and access to it? (Press y|Y for Yes, any other key for No): Y Reload privilege tables now? (Press y|Y for Yes, any other key for No): Y ⚠️ Importante: Escolha uma senha forte para o root e guarde-a em local seguro. Você precisará dela nas próximas etapas. 5. Instalar o crudini (se ainda não estiver instalado) apt install crudini O crudini é uma ferramenta para editar arquivos de configuração de forma simples e segura, sem precisar abrir o arquivo manualmente. 6. Ajustar as Configurações do MySQL Os comandos abaixo ajustam o comportamento do MySQL para funcionar corretamente com o sistema. Essas configurações controlam coisas como o tamanho máximo de dados que podem ser enviados de uma vez, quais endereços o banco aceita conexões e como os backups são feitos. crudini --set /etc/mysql/mysql.conf.d/mysqld.cnf mysqld sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION && \ crudini --set /etc/mysql/mysql.conf.d/mysqld.cnf mysqld max_allowed_packet 64M && \ crudini --set /etc/mysql/mysql.conf.d/mysqld.cnf mysqld bind-address 0.0.0.0 && \ crudini --set /etc/mysql/mysql.conf.d/mysqld.cnf mysqld skip-external-locking 1 && \ crudini --set /etc/mysql/mysql.conf.d/mysqld.cnf mysqld performance_schema 1 && \ crudini --set /etc/mysql/mysql.conf.d/mysqldump.cnf mysqldump quick 1 && \ crudini --set /etc/mysql/mysql.conf.d/mysqldump.cnf mysqldump quote-names 1 && \ crudini --set /etc/mysql/mysql.conf.d/mysqldump.cnf mysqldump max-allowed-packet 128M O que cada configuração faz: Configuração O que define sql_mode Regras de validação de dados — impede que dados inválidos (como datas zeradas) sejam salvos max_allowed_packet 64M Tamanho máximo de uma requisição ao banco (64 MB) bind-address 0.0.0.0 Permite conexões de qualquer endereço de rede (necessário para o Docker) skip-external-locking Desativa bloqueio externo de arquivos (melhora desempenho) performance_schema Ativa o monitoramento interno de desempenho do MySQL quick (dump) Exporta os dados linha a linha, economizando memória em backups quote-names (dump) Coloca aspas nos nomes de tabelas e colunas nos backups, evitando erros max-allowed-packet 128M (dump) Tamanho máximo de dados em backups (128 MB) 7. Corrigir Formatação das Configurações Este comando garante que as configurações inseridas fiquem no formato correto dentro dos arquivos: sed -i -e "s/.*skip-external-locking.*/skip-external-locking/" /etc/mysql/mysql.conf.d/mysqld.cnf && \ sed -i -e "s/.*performance_schema.*/performance_schema/" /etc/mysql/mysql.conf.d/mysqld.cnf && \ sed -i -e "s/.*quick.*/quick/" /etc/mysql/mysql.conf.d/mysqldump.cnf && \ sed -i -e "s/.*quote-names.*/quote-names/" /etc/mysql/mysql.conf.d/mysqldump.cnf 8. Permitir Acesso Remoto ao Usuário Root Por padrão, o usuário root do MySQL só pode se conectar localmente. Os passos abaixo alteram essa configuração para permitir conexões de qualquer lugar — necessário para que o Docker acesse o banco. 8.1 – Ativar o método de autenticação nativo Abra o arquivo de configuração do MySQL: nano /etc/mysql/mysql.conf.d/mysqld.cnf Localize a seção [mysqld] e adicione a linha abaixo ao final dela: mysql_native_password=ON Salve o arquivo pressionando Ctrl + O , depois Enter , e saia com Ctrl + X . Por que isso é necessário? O Percona MySQL 8.4 usa por padrão um método de autenticação mais novo ( caching_sha2_password ) que pode ser incompatível com alguns clientes. Ativar o método nativo garante compatibilidade com o sistema. 8.2 – Liberar o acesso remoto do root via linha de comando Execute o comando abaixo. Quando solicitado, digite a senha do MySQL (a senha nova que você definiu no passo 4): mysql -h localhost -u root -p mysql -e "UPDATE user SET Host = '%' WHERE user.Host = 'localhost' AND user.User = 'root' LIMIT 1;" 8.3 – Atualizar o método de autenticação do root dentro do banco Acesse o MySQL interativamente: mysql -u root -p Quando solicitado, digite a senha do MySQL e execute os comandos abaixo, substituindo SENHA pela senha que você definiu para o banco: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'SENHA'; FLUSH PRIVILEGES; O que esses comandos fazem: ALTER USER — altera o usuário root para usar o método de autenticação nativo com a senha definida FLUSH PRIVILEGES — aplica as alterações de permissão imediatamente, sem precisar reiniciar o serviço Digite exit e pressione Enter para sair do MySQL. 9. Reiniciar o MySQL para Aplicar as Configurações service mysql restart Após reiniciar, todas as configurações entram em vigor e o banco de dados estará pronto para uso. ✅ Instalação Concluída O Percona MySQL está instalado, configurado e em execução. Próximo Passo Continue para: Instalação do Docker