11 fevereiro 2016

Instalação MySQL 5.7 no FreeBSD 11

O FreeBSD é o sistema operacional UNIX-like que sempre foi sinônimo de estabilidade e segurança. O MySQL 5.7 possui muitos recursos interessantes, como o suporte nativo a JSON e melhor performance e segurança. Neste tutorial veremos como instalar o MySQL 5.7 no FreeBSD 11.


Nota: usei o FreeBSD em uma Virtual Machine para testar este procedimento. Criei a VM usando o Vagrant e Virtual Box. Depois de instalar o Vagrant e Virtual Box, criei um Vagrantfile no editor de textos com o conteúdo abaixo:
Vagrant.configure("2") do |config|
 config.vm.guest = :freebsd
 config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
 config.vm.box = "freebsd/FreeBSD-11.0-CURRENT"
 config.ssh.shell = "sh"
 config.vm.base_mac = "080027D14C66"

 config.vm.provider :virtualbox do |vb|
   vb.customize ["modifyvm", :id, "--memory", "2048"]
   vb.customize ["modifyvm", :id, "--cpus", "2"]
   vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
   vb.customize ["modifyvm", :id, "--audio", "none"]
   vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
   vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
 end
end
Depois, no mesmo diretório do Vagrantfile, executei:
shell> vagrant up --provider virtualbox

Opções de instalação

Temos 4 opções de instalação no FreeBSD:
  1. usar o gerenciador de pacotes pkg (recomendado, não requer compilação)
  2. usar os ports disponibilizados em http://www.freebsd.org (pouco mais demorado, requer compilação)
  3. usar binários pré-compilados disponibilizados pela Oracle (apenas para obter versão mais recente do MySQL, não requer compilação)
  4. compilar seus próprios binários (mais flexível, porém requer bastante esforço)
A comunidade do FreeBSD faz um ótimo trabalho disponibilizando muito rapidamente os pacotes e ports com as releases mais atuais do MySQL. No momento de escrita deste artigo, os pacotes e ports para MySQL 5.7 estão apenas uma release atrás da mais recente disponibilizada pela Oracle. Usar pacotes ou ports (opções 1 e 2) nos dá vários benefícios:
  • ter um MySQL funcional e com otimizações específicas conhecidas para sua versão do FreeBSD devidamente habilitadas;
  • configuração e build automáticos;
  • scripts de inicialização instalados em /usr/local/etc/rc.d;
  • poder usar pkg_info -L para ver quais arquivos estão instalados;
  • poder usar pkg_delete para remover o MySQL se você não o quiser mais em sua máquina.
Por esses motivos, vamos explorar a seguir os passos para instalação via pacotes (opção 1) e via ports mysql-server e mysql-client (opção 2).

Instalação via pacotes pkg do FreeBSD

  1. Para o procedimento abaixo funcionar, esteja logado como root, se necessário execute:
    shell> sudo -i
  2. Garanta um ports tree atualizado:
    shell> portsnap fetch update
  3. Compile e instale o MySQL:
    shell> pkg install mysql57-server
  4. (Opcional) Se tudo correu bem até aqui, MySQL Server e Client foram instalados. Confirme com:
    shell> mysql -V
  5. Habilite o MySQL como serviço e inicialize:
    shell> echo 'mysql_enable="YES"' >> /etc/rc.conf
    shell> service mysqld-start
  6. (Opcional) Confirme se o mysqld está em execução com:
    shell> ps -auxww | grep mysqld
  7. Neste ponto, o diretório de dados (datadir) foi criado e uma senha temporária atribuída ao usuário root do MySQL:
    shell> ls /var/db/mysql
    shell> cat /root/.mysql_secret
    # Password set for user 'root@localhost' at … xxxxxxxxxxxx
  8. Conecte-se com o MySQL e troque a senha para, por exemplo, “Root123!”:
    shell> mysql -uroot -p'xxxxxxxxxxxx'
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123!';
    mysql> quit

Instalação via ports do FreeBSD

Observe que este método é mais demorado que o anterior. Use-o apenas se tiver necessidades específicas de customização da build. Se você quiser mais controle sobre as opções de compilação dos pacotes que serão instalados, remova o parâmetro -DBATCH dos comandos make abaixo.
  1. Para o procedimento abaixo funcionar, esteja logado como root, se necessário execute:
    shell> sudo -i
  2. Verifique se o GNU make (gmake) está disponível. Se o resultado do comando gmake -v for Command not found, você deve instalá-lo com os comandos:
    shell> portsnap fetch extract
    shell> cd /usr/ports/devel/gmake
    shell> make -DBATCH install clean
  3. Garanta um ports tree atualizado:
    shell> portsnap fetch update
  4. Compile e instale o MySQL:
    shell> cd /usr/ports/databases/mysql57-server
    shell> make -DBATCH install clean
  5. Os demais passos são idênticos ao método anterior (instalação via pacotes pkg). Execute os mesmos passos a partir do #4 (comando mysql -V em diante).

Se algo não funcionou ou se tiver alguma sugestão deixe seu comentário.

Referências


Um comentário:

Felippe Brasil disse...

Cara busquei em varios sites mais só o seu funcionou kkkk Vlw mesmo. Otimo trabalho e muito generoso da sua parte compartilhar conhecimento.