Introdução
O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares do mundo. Neste artigo, apresentamos os métodos para instalar diferentes versões do MySQL (5.5, 5.6 e 5.7) no sistema operacional CentOS, tanto através de repositórios quanto por compilação manual.
Instalação via Repositório YUM
A maneira mais simples de instalar o MySQL no CentOS é utilizando o repositório oficial da Oracle. A documentação oficial está disponível em dev.mysql.com.
Para sistemas CentOS 6, utilize o pacote que contém "el6" no nome. Para CentOS 7, procure por "el7".
Instalação por Compilação Manual
Instalação de Dependências
Antes de compilar o MySQL, é necessário instalar as dependências do sistema:
yum -y install cmake
yum -y install gcc-c++
yum -y install ncurses ncurses-devel
Caso occorra algum erro durante a compilaçãoindicando bibliotecas faltantes, instale as dependências informadas e execute:
rm CMakeCache.txt
cmake [opções de configuração]
Configuração e Compilação
Execute o cmake com os parâmetros desejados:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/servidor/mysql \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSETS=utf8 \
-DDERAULT_COLLATION=utf8_general_ci
Alguns parâmetros importantes:
- CMAKE_INSTALL_PREFIX: Diretório base da instalação
- DEFAULT_CHARSETS: Codificação padrão do banco
- EXTRA_CHARSETS: Codificações adicionais suportadas
Para remover os arquivos instalados em caso de necessidade, utilize:
xargs rm < install_manifest.text
Este comando remove apenas arquivos, não diretórios.
Configuração de Permissões
Após a enstalação,configure as permissões adequadamente:
chown -R mysql.mysql /usr/local/servidor/mysql
O diretório de dados deve pertencer ao usuário de sistema do MySQL (geralmente chamado "mysql"), nunca ao root. Caso contrário, ao iniciar o serviço, you'll encounter o erro:
The server quit without updating PID file
E no log de erros, you'll see:
Can't start server : Bind on unix socket: Permission denied
Inicialização do Banco de Dados
Após compilar e instalar, inicialize o banco de dados:
./script/mysql_install_db --basedir=/usr/local/servidor/mysql --datadir=/usr/local/servidor/mysql/dados
O script indicará os próximos passos para configurar a senha do root e inicieor automático:
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
/usr/local/servidor/mysql/bin/mysqladmin -u root password 'nova-senha'
Para iniciar o MySQL manualmente:
cd /usr/local/servidor/mysql
./bin/mysqld_safe &
Arquivo de Configuração
Copie o arquivo de configuração padrão para o diretório de instalação:
cp support-files/my-default.cnf /usr/local/servidor/mysql/my.cnf
Cuidado: se você copiar o arquivo antes da inicialização, you'll receive um aviso indicando que um novo arquivo de configuração foi criado automaticamente.
Problema comum: ao iniciar o MySQL pela primeira vez com uma configuração de socket customizada, pode aparecer o erro:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Este problema geramlente ocorre quando o parâmetro socket é definido prematuramente no arquivo de configuração.
Instalação do MySQL 5.7
Dependência do Boost
A partir da versão 5.7, o MySQL depende da biblioteca Boost. É necessário instalá-la previamente:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/servidor/mysql57 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
Bibliotecas Adicionais
Pode ser necessário instalar bibliotecas adicionais:
yum -y install libatomic
yum -y install numactl
yum -y install numactl-devel
Inicialização e Configuração de Senha
Após a instalação via RPM, localize os arquivos instalados:
rpm -ql mysql-community-server-el7-x86_64
Consulte o arquivo /etc/my.cnf para identificar onde os logs estão armazenados. Em seguida, pesquise a senha temporária:
grep password /caminho/para/log/erros.log
Inicie o serviço e conecte-se usando a senha temporária. Depois, altere a senha:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NovaSenha123@';
Nota sobre Cmake
Uma característica importante do cmake é a capacidade de compilação externa (out-of-source), que permite compilar o projeto em um diretório separado do código-fonte. Isso mantém o código original intacto e permite múltiplas compilações com diferentes configurações a partir da mesma árvore de fontes.