Última atualização:
Tutorial: como instalar MySQL 5.5 no Ubuntu 22.04 LTS
Tutorial: como instalar MySQL 5.5 no Ubuntu 22.04 LTS

Como instalar o MySQL 5.5 no Ubuntu 22.04 LTS

Nawarian
Nawarian mysql

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:

Iniciando uma sessão no ubuntu:22.04 utilizando docker

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:

Filtro de versão e sistema operacional da listagem de downloads.
Filtro de versão e sistema operacional da listagem de downloads.

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
Download do servidor MySQL 5.5 via curl
Download do servidor MySQL 5.5 via 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
Extração dos arquivos do servidor MySQL 5.5 via `dpkg --unpack`
Extração dos arquivos do servidor MySQL 5.5 via 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
Listagem de arquivos em /opt/mysql/server-5.5
Listagem de arquivos em /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:

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
Download de dependências via curl e instalação via dpkg -i
Download de dependências via 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
Criação de links simbólicos dentro de um loop `for`
Criação de links simbólicos dentro de um loop for

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
Criação do grupo e usuário mysql. Atribuição da pasta /opt/mysql/server-5.5 à este grupo e usuário.
Criação do grupo e usuário 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
Cópia dos arquivos padrão da instalação do MySQL 5.5
Cópia dos arquivos padrão da instalação do MySQL 5.5

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
Adicionadas as opções basedir e datadir no arquivo `/etc/mysql/my.cnf`
Adicionadas as opções 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
Inicialização das tabelas do banco MySQL 5.5
Inicialização das tabelas do banco MySQL 5.5

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;
Teste do servidor MySQL 5.5 utilizando o comando SQL show databases
Teste do servidor MySQL 5.5 utilizando o comando SQL show databases

Comentários