Ubuntu é hoje uma das distribuições Linux mais populares, principalmente pela facilidade de instalação e configuração. O MySQL 5.7 oferece novos recursos interessantes, como o suporte nativo a JSON e melhor performance e segurança. Neste tutorial veremos como instalar o MySQL 5.7 no Ubuntu 15.10.
Nota: usei o Ubuntu em uma Virtual Machine para testar este procedimento. Criei a VM usando o Vagrant e Virtual Box. Depois de instalados, basta executar:
shell> vagrant init boxcutter/ubuntu1510
shell> vagrant up --provider virtualbox
3 opções de instalação
Temos 3 opções para prosseguir com a instalação:
- usar o APT como gerenciador de pacotes (recomendado)
- usar binários pré-compilados (mais flexível, permite por exemplo mudar o diretório de instalação)
- compilar seus próprios binários (avançado)
A seguir estão os passos para opções 1 e 2.
Nota: se você tiver alguma instalação anterior de MySQL, faça backup antes de realizar qualquer procedimento.
Versão mais atualizada do MySQL
A maneira mais fácil de instalar o MySQL no Ubuntu é utilizar o gerenciador de pacotes APT. Porém, o repositório APT padrão do Ubuntu não possui as versões mais atuais do MySQL e é necessário instalar o repositório oficial do MySQL.
Para confirmar a versão do MySQL disponível no seu repositório APT padrão, execute:
shell> sudo apt-get update
shell> sudo apt-get -s install mysql-server
A opção -s do comando acima apenas simula uma instalação e de fato não altera nada.
shell> sudo apt-get update
shell> sudo apt-get -s install mysql-server
A opção -s do comando acima apenas simula uma instalação e de fato não altera nada.
No momento que escrevo este tutorial, a versão mais atual do MySQL disponível no repositório padrão do Ubuntu é a 5.6, que não é a mais atual. Contudo, é muito simples configurar o Ubuntu para utilizar o repositório oficial MySQL e manter as versões mais atualizadas. Veremos a seguir.
Instalação do repositório oficial MySQL
- Baixe o repositório APT para MySQL em http://dev.mysql.com/downloads/repo/apt. É o mesmo pacote tanto para Debian, quanto para Ubuntu. No meu caso, baixei para o diretório /home/vagrant/downloads. Dica: na tela de login, veja o link em “No thanks, just start my download”;
- Instale o repositório APT com o comando:
shell> cd /home/vagrant/downloads
shell> sudo dpkg -i mysql-apt-config*.deb
Após executar o comando, você terá a liberdade de escolher qual versão do MySQL vai usar e se vai querer outros componentes, como conectores ou ferramentas. Neste tutorial escolheremos a versão 5.7. - (Opcional) Remova o arquivo do repositório que acabou de baixar:
shell> rm mysql-apt-config*.deb - (Opcional) Verifique que agora temos o MySQL 5.7 disponível para instalação:
shell> sudo apt-get update
shell> sudo apt-get -s install mysql-server
Instalação do MySQL via APT
Uma vez que o repositório oficial MySQL esteja configurado (veja seção anterior), para instalar o MySQL 5.7 basta executar:
- shell> sudo apt-get update
shell> sudo apt-get install mysql-server
No processo de instalação, será solicitada a criação da senha do usuário root do MySQL. Senhas devem conter pelo menos 1 caractere numérico, uma minúscula e letra maiúscula e 1 caractere especial (não alfanumérico). - (Opcional) Veja se o servidor MySQL foi inicializado com:
shell> sudo service mysql status - (Opcional) Veja o que foi instalado com:
dpkg -l | grep mysql | grep ii
Instalação do MySQL “na unha” via binários pré-compilados
Esta opção de instalação é mais trabalhosa, pois não utiliza o gerenciador de pacotes APT, porém dá mais flexibilidade. Por exemplo: permite escolher quais diretórios serão utilizados pelo MySQL, executar múltiplas instâncias, etc.
- Como pré-requisito, certifique-se que a dependência libaio está presente:
shell> ldconfig -p | grep libaio
libaio.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libaio.so.1
Veja que a libaio está presente. Caso não tenha a libaio, instale com:
shell> apt-get install libaio1 - Baixe os binários em dev.mysql.com, selecione “Linux - Generic” como plataforma. No meu caso, baixei para o diretório /home/vagrant/downloads. Dica: na tela de login, veja o link em “No thanks, just start my download”;
- Remova qualquer instalação prévia ou variante de MySQL com:
shell> sudo dpkg -P mysql - Executar a seguinte sequência de comandos no shell:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
cd /home/vagrant
tar zxvf /home/vagrant/downloads/mysql-5.7*.tar.gz
ln -s mysql-5.7* mysql
cd mysql
mkdir mysql-files
chmod 750 mysql-files
sudo chown -R mysql .
sudo chgrp -R mysql .
sudo bin/mysqld --initialize --user=mysql --log-error=/tmp/mysqld.log --datadir=/home/vagrant/mysql/data
sudo cat /tmp/mysqld.log - Se tudo correu bem até aqui, o diretório de dados foi criado e uma senha temporária atribuída ao usuário root do MySQL:
shell> sudo cat /tmp/mysqld.log
[Note] A temporary password is generated for root@localhost: xxxxxxxxxxxx - Continue com o procedimento de pós-instalação com os seguintes comandos:
sudo bin/mysql_ssl_rsa_setup --datadir=/home/vagrant/mysql/data
sudo chown -R root .
sudo chown -R mysql data mysql-files - Neste ponto o MySQL já está pronto para rodar. Para iniciar o processo mysqld (server):
shell> sudo bin/mysqld_safe --user=mysql &
(pressione Enter 2 vezes) - Conecte-se com o MySQL com:
shell> bin/mysql -uroot -p'xxxxxxxxxxxx' - Na versão 5.7, é obrigatório trocar a senha na primeira conexão. Veja o exemplo para a nova senha “Root123!”:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123!';
mysql> quit - (Opcional) Depois que tudo estiver funcionando, remova o arquivo de instalação:
rm /usr/local/downloads/mysql-5.7*.tar.gz
Observações:
- É usual manter um arquivo /etc/my.cnf para alterar as configurações padrão do MySQL. Você pode copiá-lo do template:
sudo cp support-files/my-default.cnf /etc/my.cnf
sudo chown root:sys /etc/my.cnf
sudo chmod 644 /etc/my.cnf - Neste tipo de instalação manual, o MySQL não é inicializado no boot. Para inicializar manualmente:
shell> sudo /home/vagrant/mysql/bin/mysqld_safe --user=mysql & - Para finalizar o processo mysqld, ao invés de forçar um kill, prefira usar:
shell> /home/vagrant/mysql/bin/mysqladmin -uroot -p shutdown - Adicione os executaveis do MySQL no PATH do seu usuário:
echo 'PATH="$HOME/mysql/bin:$PATH"' >> ~/.profile
source ~/.profile
Para saber mais detalhes como remover o MySQL ou mudar a versão major, consulte os links nas referências abaixo. Deixe seu comentário caso algo não funcione ou se tiver alguma sugestão.