Para realizar a instalação do MySQL em ambientes Linux, é necessário preparar as dependências de compilação e bibliotecas do sistema:
yum groupinstall "Development Tools" -y && yum install cmake bison ncurses-devel perl -y
Após a instalação desses pacotes, o processo de compilação do MySQL ocorre sem problemas.
1. Preparação e configuração do CMake
cmake . \
-DCMAKE_INSTALL_PREFIX=/opt/mysql-server \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/mnt/dbvol/mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=ON \
-DWITH_MYISAM_STORAGE_ENGINE=ON
O diretório base será /opt/mysql-server, o charset e collation padrão definidos como utf8, e os arquivos de dados serão armazenados em /mnt/dbvol/mysql, que corresponde a um volume de dados separado.
2. Compilação e instalação dos binários
make -j$(nproc) && make install
O parâmetro -j utiliza todos os núcleos de CPU disponíveis para acelerar a compilação. Embora seja possível exceutar configuração e compilação em uma única linha, separar as etapas facilita a identificação de erros na fase de configuração antes de iniciar o processo de build.
3. Configurações pós-instalação
# Criar grupo e usuário dedicados ao serviço
groupadd dbadmin
useradd -r -g dbadmin -s /sbin/nologin dbadmin
# Inicializar o diretório de dados
/opt/mysql-server/scripts/mysql_install_db \
--basedir=/opt/mysql-server \
--datadir=/mnt/dbvol/mysql \
--user=dbadmin
# Ajustar permissões
chown -R dbadmin:dbadmin /opt/mysql-server
chown -R dbadmin:dbadmin /mnt/dbvol/mysql
# Copiar scripts de inicialização e configuração
cp /opt/mysql-server/support-files/mysql.server /etc/init.d/mysqld
cp /opt/mysql-server/support-files/my-medium.cnf /etc/my.cnf
chkconfig --add mysqld
chkconfig mysqld on
Os passos realizam: criação de um usuário de serviço sem acesso de login; inicialização do diretório de dados através do script mysql_install_db; atribuição de propriedade dos diretórios ao usuário de serviço; cópia do script de inicialização para o diretório de serviços do sistema; cópia do arquivo de configuração padrão; e registro do serviço para inicialização automática no boot.
4. Ajustes no arquivo de configuração (my.cnf)
Após concluir a configuração do sistema, edite o arquivo /etc/my.cnf na seção [mysqld]:
[mysqld]
skip-name-resolve
basedir = /opt/mysql-server
datadir = /mnt/dbvol/mysql
log-error = /opt/mysql-server/logs/mysql_error.log
pid-file = /opt/mysql-server/run/mysql.pid
user = dbadmin
tmpdir = /tmp
O parâmetro skip-name-resolve desativa a resolução de nomes DNS durante as conexões, melhorando o tempo de resposta. Os caminhos de basedir e datadir devem corresponder aos definidos no CMake. O log-error define o arquivo de registro de erros, e pid-file indica onde o arquivo de processo será criado. Caso os caminhos estejam incorretos, o daemon não conseguirá iniciar e reportará falha na criação do pid-file. O parâmetro user define o usuário responsável pela execução do serviço, e tmpdir especifica o diretório temporário.
5. Definição da senha de root
Por padrão, a conta root vem sem senha. Há duas formas de atribuí-la:
Opção A: Utilizando a ferramenta mysqladmin
/opt/mysql-server/bin/mysqladmin -u root password 'MinhaSenhaForte123'
Opção B: Alterando diretamente na tabela de usuários
/opt/mysql-server/bin/mysql -h 127.0.0.1 -u root
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('MinhaSenhaForte123') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
A opção B atualiza a tabela de autenticação e aplica as alterações com FLUSH PRIVILEGES, recarregando as permissões sem necessidade de reiniciar o serviço.