Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL.
Nesse momento vamos ver como fazer a instalação a partir dos arquivos binários, e já adianto que será um post um pouco longo, pois temos que configurar tudo manualmente.
Vamos instalar a versão mais recente do MySQL 5.7.
A primeira coisa a ser feita é acessar o site do MySQL e fazer o download do arquivo.
Recomendo executar um yum update antes de iniciar, pois caso tenha alguma lib desatualizada, nesse momento ela será atualizada.
A primeira coisa é fazer o download dos arquivos que vamos precisar.
https://dev.mysql.com/downloads/mysql/
Ao chegar nessa tela verá que a versão que está selecionada para download são os pacotes da versão 8(MySQL Community Server 8.X.XX), mas queremos a versão 5.7, então nessa mesma página, procure por isso “Looking for previous GA versions?” e logo abaixo terá um link “MySQL Community Server 5.7″, clique nele e será direcionado para a página de download da versão 5.7.
Depois selecione o sistema operacional que deseja, como estamos utilizando o CentOS, vamos selecionar a opção “Red Hat Enterprise Linux / Oracle Linux” e depois emos que selecionar a versão do Sistema Operacional em “Select OS Version:”. No meu caso estou usando a versão 7 x86 64 Bit.
Muita atenção para baixar os pacotes para a versão correta, por exemplo, se o teu SO for 64 Bit, baixe os pacotes para 64 Bit e não para 32 Bit.
Vou fazer o download do arquvo Compressed TAR Archive(mysql-5.7.23-el7-x86_64.tar.gz).
Você pode fazer o download no seu computador e transferir para o servidor ou pode fazer o download direto no servidor, usando o wget, por exemplo.
Eu vou usar o wget, e para isso fiz esses passos:
- Clique no botão download do “Compressed TAR Archive”.
- Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-el7-x86_64.tar.gz”.
- No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-el7-x86_64.tar.gz”.
Pronto já temos o arquivo que precisamos, ele é um pacote bem grande, mas nele tem tudo que precisamos.
Vamos fazer a instalação.
A primeira coisa a fazer é descompactar o arquivo.
Depois vamos mover todos os arquivos descompactados para a pasta /opt/
E agora vamos criar um link simbólico da pasta /opt/mysql-5.7.23-el7-x86_64 em /usr/local/mysql
Uma coisa que acho legal desse formato é que é bem simples fazer o upgrade da versão do MySQL, basicamente é mudar o link simbólico, mas esse é assunto para outro post.
Todos os binários do MySQL estão em /usr/local/mysql/bin, vamos conferir.
Para facilitar o acesso aos binários, vamos incluir no path do linux esse diretório, isso será muito útil para acessar o MySQL cliente ou mysqldump, por exemplo.
Os usuários no linux tem um arquivo chamado .bashrc no diretório /home/ ou no casso do root em /root/ e é nesse arquivo que temos que adicionar essa linha “export PATH=$PATH:/usr/local/mysql/bin”
vim ~/.bashrc
export PATH=$PATH:/usr/local/mysql/bin
Depois execute esse comando para que a sua sessão no linux já possa acessar os binários do MySQL.
Para testar digite mysql e enter.
Agora aqui um ponto importante, as versão mais recentes do CentOS já vem com alguns pacotes do MariaDB instalado, isso acontece em função de acordos comerciais, vamos verificar e remover esses pacotes caso estejam instalados, assim como o arquivo /etc/my.cnf.
No meu caso o pacote mariadb-libs-5.5.56-2.el7.x86_64 já estava instalado e eu removi, quando removi esse pacote ele já removeu o arquivo my.cmf que tinha.
O próximo passo é criar um arquivo my.cnf básico apenas para subir o serviço do MySQL. Ele bem semelhante ao que criado quando é instalado através do repositório.
Todos os diretórios que estou usando como exemplo, são os recomendados pela Oracle.
Veja que apenas está definido o datadir, onde será criado o sockect, qual usuário o MySQL irá utilizar para acessar os arquivos no sistema operacional, local do log se erros e local do pid.
Como vimos, no my.cnf está configurado o usuário mysql, mas esse usuário não existe no Linux, então vamos criar.
E agora vamos criar o diretório que será utilizado como datadir. Vamos criar informar que o dono desse diretório é o usuário mysql.
E por último criar o diretório que irá ficar o pid.
Agora que já temos os binários, o path no sistema operacional, o my.cnf e os diretórios criados e com as permissões corretas, vamos iniciar o MySQL. Isso mesmo iniciar, como estamos utilizando diretamente os binários, não tem instalação para ser feita, apenas iniciar.
Na primeira vez que for iniciar o MySQL, é necessário informar para o deamon do MySQL, o mysqld que é necessário criar os arquivos do MySQL no datadir, e para isso basta fazer dessa forma.
Vejam que eu tive um erro, no meu servidor não tem o libaio instalado, então antes vou ter que fazer a instalação, pois ele é um pré requisito.
Agora vamos novamente inicializar o datadir.
Veja que ele já mostra a senha temporária do usuário root, guarde ela pois vamos precisar para acessar o MySQL, diferente da instalação através do repositório, essa senha não foi gravada no log de erro, e esse é o único momento que ela é exibida, caso não anote será necessário excluir os arquivos do datadir e executar novamente o comando mysqld –initialize.
Vamos ver como que ficou o datadir.
Agora já podemos iniciar o serviço do mysql, nesse caso recomendo utilizar o mysql_safe e não apenas o mysqld, vejam também que no final do mysql_safe eu coloquei um &, isso é para que ele fique executando em segundo plano.
Vamos conferir se o serviço está rodando.
Pronto, mysql instalado e funcionando, agora vamos acessar o MySQL e alterar a senha do root.
Deu um erro ao ler o socket, já que para a coenxão localhost o mysql cli vai utilziar o socket.
Como podem ver no my.cnf nós definimos onde o socket será criado ‘socket=/var/lib/mysql/mysql.sock’, porém o mysql cli tem como path default /tmp/mysql.sock, então vamos ajustar o my.cnf para que o mysql cli utilize o path que definimos.
vim /etc/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock
Como essa alteração só afeta o mysql cli e não mo mysql server não é necessário reiniciar, pois o mysql cli fará a leitura em tempo de execução.
Como última passo para concluirmos esse post, vamos configurar o serviço do MySQL no sistema operacional, para que possamos utilizar os comandos de service mysqld start/stop/status, etc… No inicio eu disse que seria tudo configurado na mão!
Primeiro vamos parar o serviço do MySQL com o mysqladmin
Junto com os arquivos que baixamos lá no inicio, já tem pronto o script que precisamos para poder configurar o serviço, que é o arquivo /usr/local/mysql/support-files/mysql.server, só temos que criar um link simbólico em /etc/init.d.
E pronto, já podemos usar o serviço.