Instalação e Configuração do MySQL 8.0 no CentOS a Partir de Arquivo Tar

Este guia detalha o processo de instalação do MySQL 8.0 em um sistema CentOS utilizando o pacote binário tar.gz. O foco está na configuração manual de diretórios, permissões e ajustes críticos no arquivo de inicialização, especialmente em relação à sensibilidade a maiúsculas e minúsculas.

1. Verificação de Conflitos e Instalação de Dependências

Primeiro, verifique se o MariaDB está instalado no sistema, pois pode causar conflitos com o MySQL.

rpm -qa | grep -i mariadb

Caso seja encontrado, remova-o completamente para evitar problemas de dependência:

rpm -e --nodeps mariadb-libs-*

Em seguida, instale a biblioteca assíncrona de I/O necessária para o funcionamento do banco de dados:

yum install -y libaio

2. Preparação do Sistema de Arquivos e Usuário

Crie a estrutura de diretórios para os binários e os dados do banco de dados. Neste exemplo, utilizaremos /opt/mysql como base.

mkdir -p /opt/mysql/binaries
mkdir -p /opt/mysql/data

Crie o grupo e o usuário dedicado para a execução do serviço, restringindo o login do shell:

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

Aplique as permissões de propriedade para o novo usuário:

chown -R mysql:mysql /opt/mysql
chmod -R 750 /opt/mysql

3. Extração do Pacote Binário

Após baixar o arquivo mysql-8.0.22-el7-x86_64.tar.gz do site oficial, extraia-o e mova os conteúdos para o diretório de binários:

cd /opt/mysql
tar -zxvf mysql-8.0.22-el7-x86_64.tar.gz
mv mysql-8.0.22-el7-x86_64/* binaries/
rm -rf mysql-8.0.22-el7-x86_64

4. Configuração do Arquivo my.cnf

Crie o arquivo de configuração global. É crucial garantir que os caminhos e as configurações de caractere estejam corrretos. A diretiva lower_case_table_names é fundamental em ambientes Linux para garantir que os nomes das tabelas não sejam sensíveis a maiúsculas e minúsculas.

cat <<EOF > /etc/my.cnf
[mysqld]
port=3307
basedir=/opt/mysql/binaries
datadir=/opt/mysql/data
max_connections=5000
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default_authentication_plugin=mysql_native_password
lower_case_table_names=1

[mysql]
default-character-set=utf8mb4

[client]
port=3307
default-character-set=utf8mb4
EOF

5. Inicialização do Banco de Dados e Início do Serviço

Execute o comando de inicialização. Atenção: anote a senha temporária gerada no console.

/opt/mysql/binaries/bin/mysqld --initialize --console --user=mysql

Para iniciar o serviço, utilize o script de suporte e adicione-o ao init.d para facilitar o gerenciamento via service:

cp /opt/mysql/binaries/support-files/mysql.server /etc/init.d/mysqld
service mysqld start

Resolução de problemas: Se ocorrer erro de my_print_defaults ou updating PID file, verifique se os caminhos no /etc/my.cnf correspondem exatamente ao basedir e se o usuário mysql tem permissão de escrita no datadir.

6. Configuração de Variáveis de Ambiente e Alteração de Senha

Para executar o cliente MySQL de qualquer diretório sem precisar especificar o caminho absoluto, crie um link simbólico:

ln -s /opt/mysql/binaries/bin/mysql /usr/local/bin/mysql

Acesse o console utilizando a senha temporária e altere a credencial do root:

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NovaSenhaForte@2023';

7. Habilitação de Acesso Remoto

Para permitir conexões externas, atualize a tabela de usuários do MySQL alterando o host de origem:

USE mysql;
UPDATE user SET Host='%' WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

Reinicie o serviço para aplicar todas as alterações de rede e configuração:

service mysqld restart

Tags: MySQL CentOS Linux Database Administration my.cnf

Publicado em 7-12 17:59