O projeto tem como objetivo melhorar o gerenciamento de quatro instâncias do MySQL 8.4.8 que atualmente executam nas portas 3306, 3307, 3308 e 3309, mas sem um controle estruturado de serviços no sistema operacional.
Para resolver esse cenário, será realizada a padronização do gerenciamento utilizando o systemd, criando um serviço específico para cada instância. Isso permitirá administrar o banco de dados de forma mais organizada, segura e dinâmica, facilitando operações como start, stop, restart e monitoramento individual das instâncias.
Além disso, o projeto contempla a substituição do binário padrão do MySQL por instalações dedicadas, permitindo que cada instância utilize seu próprio conjunto de binários. Essa abordagem proporciona maior controle administrativo, melhor isolamento entre instâncias e maior flexibilidade na utilização de recursos específicos de cada instalação.
Ao final, serão realizados testes e demonstrações do novo funcionamento, evidenciando melhorias como:
-
Melhor controle operacional das instâncias
-
Gerenciamento centralizado via systemd
-
Maior segurança e padronização na administração
-
Facilidade de manutenção e troubleshooting
O resultado esperado é um ambiente MySQL mais estável, organizado e gerenciável, alinhado com boas práticas de administração em sistemas Linux.
Cenario Atual:
|
1 2 3 4 5 |
#Chamadas individuais sem servico de gerenciamento mysqld --defaults-file=/mysql/my3306.cnf --user=mysql --daemonize mysqld --defaults-file=/mysql/my3307.cnf --user=mysql --daemonize mysqld --defaults-file=/mysql/my3309.cnf --user=mysql --daemonize mysqld --defaults-file=/mysql/my3308.cnf --user=mysql --daemonize |
Passo 1: Realização da baixa do serviço
|
1 2 3 4 |
mysqladmin -uroot --password= -S /mysql/3306/dados/mysql.sock shutdown mysqladmin -uroot --password= -S /mysql/3307/dados/mysql.sock shutdown mysqladmin -uroot --password= -S /mysql/3308/dados/mysql.sock shutdown mysqladmin -uroot --password= -S /mysql/3309/dados/mysql.sock shutdown |
Passo 2 : Realização da Troca do binario do MySQL
Cada tipo de instalação traz com sigo suas pecularidades, O Binario nos traz facilidades no controle de processos e manutenção.
|
1 2 3 4 5 6 7 8 9 10 11 |
[root@laboratorios ~]# rpm -qa| grep mysql mysql84-community-release-el10-2.noarch mysql-community-common-8.4.8-1.el10.x86_64 mysql-community-client-plugins-8.4.8-1.el10.x86_64 mysql-community-libs-8.4.8-1.el10.x86_64 mysql-community-client-8.4.8-1.el10.x86_64 mysql-community-icu-data-files-8.4.8-1.el10.x86_64 mysql-community-server-8.4.8-1.el10.x86_64 mysql-shell-8.4.8-1.el10.x86_64 [root@laboratorios ~]# dnf remove mysql-community* -y |
Passo 2.1 Baixando e configurando a mesma versão anterior.
|
1 2 3 4 5 6 |
#Instalação para uso futuro e possiveis dependencias [root@laboratorios ~]# dnf install gcc numactl jemalloc glib2 -y [root@laboratorios ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.8-linux-glibc2.28-x86_64.tar.xz [root@laboratorios ~]# tar -xpf mysql-8.4.8-linux-glibc2.28-x86_64.tar.xz -C /usr/local [root@laboratorios ~]# cd /usr/local/ [root@laboratorios local]# mv mysql-8.4.8-linux-glibc2.28-x86_64 mysql |
Passo 3: Reconhecendo o comando os binarios
|
1 2 3 4 5 6 7 |
[root@laboratorios local]# vim ~/.bash_profile adicionar : export PATH=$PATH:/usr/local/mysql/bin [root@laboratorios local]# vim /etc/profile adicionar : export PATH=$PATH:/usr/local/mysql/bin [root@laboratorios local]# source ~/.bash_profile |
Passo 4: Ajustando o my.cnf
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[root@laboratorios mysql]# cat my3306.cnf my3307.cnf my3308.cnf my3309.cnf > /etc/my.cnf [root@laboratorios mysql]# vim /etc/my.cnf Editar como esta abaixo: [mysqld@3306] port = 3306 datadir=/mysql/3306/dados socket=/mysql/3306/dados/mysql.sock log-error=/mysql/3306/dados/mysqld.log pid-file=/mysql/3306/dados/mysqld.pid [mysqld@3307] port = 3307 datadir=/mysql/3307/dados socket=/mysql/3307/dados/mysql.sock log-error=/mysql/3307/dados/mysqld.log pid-file=/mysql/3307/dados/mysqld.pid [mysqld@3308] port = 3308 datadir=/mysql/3308/dados socket=/mysql/3308/dados/mysql.sock log-error=/mysql/3308/dados/mysqld.log pid-file=/mysql/3308/dados/mysqld.pid [mysqld@3309] port = 3309 datadir=/mysql/3309/dados socket=/mysql/3309/dados/mysql.sock log-error=/mysql/3309/dados/mysqld.log pid-file=/mysql/3309/dados/mysqld.pid |
|
1 2 3 4 5 6 |
#Foi necessario ajustar o arquivo abaixo [root@laboratorios mysql]# mv /mysql/3306/dadosmysqld.log /mysql/3306/dados/mysqld.log [root@laboratorios mysql]# mv /mysql/3307/dadosmysqld.log /mysql/3307/dados/mysqld.log [root@laboratorios mysql]# mv /mysql/3308/dadosmysqld.log /mysql/3308/dados/mysqld.log [root@laboratorios mysql]# mv /mysql/3309/dadosmysqld.log /mysql/3309/dados/mysqld.log |
Passo 5: Criando o serviço:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql Type=simple ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --defaults-group-suffix=@%I --user=mysql --plugin-dir=/usr/local/mysql/lib/plugin/ --basedir=/usr/local/mysql Restart=on-failure LimitNOFILE=10000 [Install] WantedBy=multi-user.target |
Passo 6: Configurando e iniciando as intancias
|
1 2 3 4 5 6 7 |
[root@laboratorios ~]# systemctl daemon-reload [root@laboratorios local]# systemctl status mysql@3306 mysql@3307 mysql@3308 mysql@3309 [root@laboratorios local]# systemctl start mysql@3306 mysql@3307 mysql@3308 mysql@3309 [root@laboratorios local]# systemctl enable mysql@3306 mysql@3307 mysql@3308 mysql@3309 #Assim cada uma pode ser gerenciada individualmente systemctl [start/stop/restart] mysql@3306 |
Conclusão
Como resultado, será possível realizar operações de administração e monitoramento de forma mais eficiente, além de facilitar manutenção e troubleshooting. Dessa forma, o ambiente MySQL torna-se mais estável, controlado e alinhado às boas práticas de administração em sistemas Linux.
Hands-on





