Instalação do MySQL 8 em Debian e CentOS

Instalação do MySQL 8 em Debian e CentOS

Ao tentar instalar o MySQL – o banco de dados open-source mais popular do mundo – você pode ser surpreendido no final do processo ao obter o MariaDB. Este fork do MySQL – originado pelo seu próprio criador, Michael Widenius em 2009 – visa substituir o MySQL em todos os aspectos, muito embora existam nítidas diferenças entre os dois.

Caso você deseje instalar o MySQL ao invés do MariaDB, é necessário antes instalar o repositório apropriado para o seu sistema operacional.

Este tutorial cobre a instalação da última versão no MySQL nos sistemas operacionais Debian/Ubuntu, CentOS 7 e FreeBSD.

DEBIAN/UBUNTU

Acesse o site: https://dev.mysql.com/downloads/ e localize a sessão MySQL APT Repository.
Acesse esta sessão, siga até o fim da página e clique no botão azul Download. Neste momento você será redirecionado para criar uma conta na Oracle, mas esse passo não é necessário. Localize no final da página o seguinte link: No thanks, just start my download. Clique nele com o botão direito e em seguida clique em “Copiar endereço”.

Acesse o terminal do servidor Debian onde o MySQL será instalado. Baixe o repositório copiado através do comando wget, e instale-o a seguir:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
sudo apt install ./mysql-apt-config_0.8.10-1_all.deb

Será apresentado a seguinte tela:

Apenas dê enter na opção OK e o repositório do MySQL 8 será instalado.

Para finalmente instalarmos o MySQL, é necessário atualizar os repositórios disponíveis. Neste momento passamos a ter acesso à última versão do MySQL:


sudo apt update -y
sudo apt install mysql-server -y

No sistema operacional Debian, por padrão, precisamos configurar a senha para o superusuário root no momento de instalação do MySQL. Você será apresentado a essa tela:

Insira uma senha de sua escolha e aperte enter, duas vezes.

Em seguida, você será questionado sobre qual método de autenticação será escolhido para acessar o MySQL. A versão 8 do MySQL implementa a autenticação caching_sha2_password, mais segura que os métodos anteriores. Adotar este método é o mais recomendado, mas note que todos os conectores utilizados para acessar o banco de dados também devem ser atualizados. Caso você prefira compatibilidade com drivers legados, selecione a opção Use Legacy Authentication Method. Caso contrário, selecione a primeira opção (recomendado).

Finalmente, podemos acessar o servidor MySQL 8 com usuário root, utilizando a senha configurada anteriormente:


mysql -u root -p

Conferimos se o serviço MySQL está ativo através do comando a seguir:


ss -lntp

Você deverá enxergar o processo mysqld ativo através das portas 3306 e 33060.

CentOS 7

Para esta distribuição vamos votar ao site: https://dev.mysql.com/downloads/ e localizar agora  a sessão MySQL Yum Repository. Nesta sessão clicaremos no botão azul Download ao lado de Red Hat Enterprise Linux 7 / Oracle Linux 7, perto do fim da página. Você será redirecionado para criar uma conta na Oracle, mas esse passo não é necessário. Localize no final da página, o seguinte link No thanks, just start my download. Clique nele com o botão direito e em seguida clique em “Copiar endereço”.

Acesse o terminal do servidor CentOS 7 onde o MySQL será instalado. Instale o repositório através do link copiado, e instale o MySQL 8:

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
sudo yum install mysql-community-server -y

O serviço MySQL ainda não está ativo. Inicie o serviço MySQL através do comando a seguir:


sudo service mysqld start

Mesmo instalado, ainda não conseguimos instalar o banco de dados MySQL. Isso porque ainda não temos acesso a senha para o usuário root. Esta senha é gerada automaticamente no processo de instalação e está presente no arquivo /var/log/mysqld.log . Verifique qual é a sua senha aleatória através do comando grep:


cat /var/log/mysqld.log | grep 'temporary password'

Podemos acessar o servidor MySQL 8 com usuário root, utilizando a senha obtida através do comando anterior:


mysql -u root -p
# Insira a senha aleatória gerada no arquivo /var/log/mysqld.log

Para alterar a senha de root, utilize o comando a seguir:


ALTER USER 'root'@'localhost' IDENTIFIED BY 'MinhaNovaSenha@2018';

A senha deverá conter oito ou mais caracteres, possuindo caracteres maiúsculos e minúsculos, números e caracteres especiais. Estas regras são definidas pelo parâmetro validate_password.policy.

Finalmente, podemos acessar o servidor MySQL 8 com usuário root, utilizando a nova senha:


mysql -u root -p
# Insira a senha gerada no passo anterior

Conferimos se o serviço MySQL está ativo através do comando a seguir:


ss -lntp

Você deverá enxergar o processo mysqld ativo através das portas 3306 e 33060.

CURSOSCONSULTORIA    CONTATO

Anterior Análise SAST com SonarQube - DevSecOps
Próxima Como restaurar a senha de root do MySQL

About author

Arlindo Neto
Arlindo Neto 7 posts

Arlindo Neto é administrador de banco de dados apaixonado por PostgreSQL. Cursa Ciência da Computação. Atua com foco em banco de dados open-source, possuindo 3 anos de experiência profissional em análise e engenharia de dados. Acumula experiência em projetos envolvendo PostgreSQL, MariaDB, MySQL e MongoDB. No momento vem atuando com Python, com ênfase em aplicações para Big Data. Possui expertise como professor, desenvolvendo e aplicando cursos sobre Linux e tecnologias Open Source, detém certificação EnterpriseDB PostgreSQL 9.6

View all posts by this author →

Você pode gostar também

Banco de Dados

Alta Disponibilidade do MySQL com InnoDB Cluster

Alta disponibilidade é um recurso que os bancos de dados  —  sejam eles relacionais ou não (NoSQL) —  devem possuir para serem respeitados no mercado. A topologia master-slave já é

Desenvolvimento

Colações não determinísticas no PostgreSQL

Com o lançamento recente do PostgreSQL 13 e com a grande maturidade das versões anteriores, algumas das novidades dessas versões mais recentes se tornam cada vez mais disponíveis para uso

Desenvolvimento

Schemas e Namespaces PostgreSQL com Django

Que tal se você pudesse organizar seus objetos de bancos de dados (suas tabelas, views, functions, procedures etc.) em namespaces de acordo com suas respectivas funções no sistema? Neste artigo