Category Archives: Docker

Instalação MySQL via Docker com acesso pelo workbench

O que parece ser trivial pode acabar demandando configurações extras além do que escrito no Docker hub.

No guia de instalação em https://hub.docker.com/r/mysql/mysql-server o comando docker run permite o acesso via -it com docker exec sem problemas.

O problema surge quando necessário acessar via workbench, o que é mais usual.

O problema: o usuário root com senha padrão gerada na instalação não tem permissão para acessar pelo localhost via TCP/IP. Que no caso do docker é tido como uma conexão remota.

Solução: primeiramente foi necessário expor a porta 3306 da imagem. Também aproveitei para setar uma senha por meio de parâmetro no comando run.

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=password-p3306:3306 -d mysql/mysql-server:5.6

Após a imagem instalada foi necessário garantir privilégios ao usuário root para acesso de qualquer host por meio dos comandos a seguir:

docker exec -it mysql-server mysql -uroot -p

grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;

Para entender melhor o esquema de senhas e hash do MySQL segue o tópico da documentação: https://dev.mysql.com/doc/refman/5.6/en/password-hashing.html

Depois de garantido o acesso é só configurar a conexão pelo workbench com o host localhost e senha previamente criada.

E pronto!