Como instalar o MySQL 5.5 no Ubuntu 22.04 LTS
Eu recentemente me deparei com um cliente que ainda está rodando a versão 5.5 do MySQL em seus servidores Ubuntu 14.04 LTS. E, apesar de a migração para uma versão mais atualizada ser fundamental, nós decidimos que o primeiro e mais fácil dos passos seria atualizar o próprio sistema operacional para que possamos ter acesso a correções de bugs, falhas de segurança e melhorias nos drivers.
Decidimos então migrar para o Ubuntu 22.04 LTS, e reinstalamos o MySQL 5.5 nele manualmente, já que o repositório apt
oficial do Ubuntu 22.04 nos oferece apenas o MySQL 8.0 que é incompatível com a base de dados no estado atual. Neste artigo eu vou te mostrar como instalar e configurar o MySQL 5.5 no Ubuntu 22.04 LTS manualmente.
Ambiente de desenvolvimento
Para que você possa executar cada passo do tutorial comigo, vamos utilizar um ambiente controlado através do docker. Para iniciar seu servidor Ubuntu 22.04 LTS dentro do docker, rode o seguinte comando:
$ docker run --rm -it ubuntu:22.04
Você precisa ter o docker ou rancher-desktop instalados para o comando acima funcionar. E se a imagem ubuntu:22.04
não estiver presente no seu sistema, este comando vai primeiro fazer o download da imagem (cerca de 78MB) para depois iniciar o servidor. Sua tela vai ficar mais ou menos assim:
Para baixar arquivos a partir da internet, vamos precisar de um pacote chamado curl
. Podemos instalar o pacote através do apt
:
# apt update
# apt install -y curl
Baixar o servidor MySQL 5.5 oficial no Ubuntu 22.04 LTS
No Ubuntu 22.04 você vai reparar que através do apt
a versão do MySQL disponível é a 8.0
. Caso queira instalar uma versão mais antiga, vai precisar adicionar um repositório apt diferente ou instalar através dos binários oficiais distribuídos pela Oracle.
Eu particularmente não confio em repositórios PPA que eu tenha pouca familiaridade e não os utilizo em projetos profissionais. Então a minha alternativa é justamente baixar o MySQL Server 5.5 através do site oficial do MySQL:
Como o Ubuntu é uma distribuição Linux baseada em Debian, podemos escolher “Debian Linux” no filtro de sistema operacional, e baixar o pacote adequado. No meu caso, vou baixar o arquivo 64 bit mysql-5.5.40-debian6.0-x86_64.deb no diretório /opt
:
# cd /opt
# curl -LO https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.40-debian6.0-x86_64.deb
curl
Podemos agora expandir o pacote utilizando o utilitário dpkg
com o comando a seguir:
# dpkg --unpack mysql-5.5.40-debian6.0-x86_64.deb
dpkg --unpack
Agora podemos entrar no diretório /opt/mysql/server-5.5
e visualizar os arquivos da instalação do MySQL 5.5:
# cd /opt/mysql/server-5.5
# ll
/opt/mysql/server-5.5
Instalar dependências do MySQL 5.5 no Ubuntu 22.04 LTS
A versão 5.5 do MySQL exige versões antigas de algumas bibliotecas. No caso do MySQL 5.5 no ubuntu 22.04 LTS precisamos instalar três bibliotecas em versões específicas:
libaio1 v0.3
- download oficiallibncurses5 v6.4
- download oficiallibtinfo5 v6.4
- download oficial
Vamos baixar e instalar estes três pacotes:
# cd /opt
# curl -LO http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.4-2_amd64.deb
# dpkg -i libtinfo5_6.4-2_amd64.deb
# curl -LO http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.4-2_amd64.deb
# dpkg -i libncurses5_6.4-2_amd64.deb
# curl -LO http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.113-5_amd64.deb
# dpkg -i libaio1_0.3.113-5_amd64.deb
curl
e instalação via dpkg -i
Adicionar binários ao escopo global do Linux
Neste momento se você tentar executar o comando mysql
ou iniciar o servidor mysqld_safe
receberá uma mensagem de “Comando não encontrado”. Isso porque apesar de termos baixado e extraído os arquivos do servidor, os binários ainda não estão disponíveis no sistema.
Para que o sistema possa encontrar os binários, vamos fazer links simbólicos dentro de /usr/bin
para expor os arquivos binários dentro de /opt/mysql/server-5.5/bin
. Resolvi utilizar um loop for ...; do ; done
para iterar sobre todos os arquivos binários do MySQL 5.5 e a partir desta lista fazer os links simbólicos com o comando ln -s
:
# for f in "/opt/mysql/server-5.5/bin"/*; do
> filename=$(basename $f);
> ln -s $f "/usr/bin/$filename";
> done
# mysql --version
mysql Ver 14.14 Distrib 5.5.40, for debian6.0 (x86_64) using readline 5.1
Criar usuário, grupo e pastas do MySQL Server 5.5
Não é recomendável rodar o MySQL Server com o usuário root
por questões de segurança. Portanto vamos criar um usuário mysql
que pertence ao grupo mysql
e atribuir algumas pastas à este usuário:
# groupadd mysql
# useradd -g mysql mysql
# chown mysql:mysql -R /opt/mysql/server-5.5
mysql
. Atribuição da pasta /opt/mysql/server-5.5
à este grupo e usuário.Configurar o MySQL
Existem alguns arquivos de configuração do MySQL dentro da pasta /opt/mysql/server-5.5/support-files
, vamos copiar o arquivo my-small.cnf
para o diretório /etc/mysql/
.
Vamos também transformar o MySQL em um serviço reconhecido pelo Ubuntu ao copiar o arquivo mysql.server
para o diretório /etc/init.d
:
# mkdir /etc/mysql
# cp /opt/mysql/server-5.5/support-files/my-small.cnf /etc/mysql/my.cnf
# cp /opt/mysql/server-5.5/support-files/mysql.server /etc/init.d/mysql.server
Como nós instalamos nossos arquivos numa pasta fora do padrão, precisamos alterar o conteúdo do arquivo de configuração my.cnf
para adicionar os campos datadir
e basedir
sob a configuração mysqld
. Abra o arquivo /etc/mysql/my.cnf
com seu editor de preferência, e adicione essas duas linhas abaixo da categoria [mysqld]
:
[mysqld]
basedir = /opt/mysql/server-5.5
datadir = /opt/mysql/server-5.5/data
basedir
e datadir
no arquivo /etc/mysql/my.cnf
(Opcional) Inicializar dados do servidor MySQL 5.5
Caso você esteja iniciando do zero, sem nenhum dado para migrar, é importante inicializar a base de dados para que as tabelas de sistema e usuários sejam instalados. Não é recomendado inicializar os dados do servidor caso você esteja migrando arquivos de um servidor para outro, você irá inutilizar seu banco de dados!
Você pode inicializar os dados do servidor MySQL 5.5 ao invocar o script mysql_install_db
:
# /opt/mysql/server-5.5/scripts/mysql_install_db
Instalação concluída!
O servidor MySQL 5.5 já está instalado em seu Ubuntu 22.04 LTS! Você pode inicializar o servidor utilizando a linha de comando.
Vamos iniciar o mysqld_safe
e realizar um breve teste:
# mysqld_safe --user=mysql &
# mysql -uroot
mysql> show databases;
show databases
Comentários