2
respostas

Como fazer um Migration quando o banco estiver rodando em um container?

Fiz todo o passo a passo e funcionou porém ao executar o comando Update-Databse obtenho o erro: Access denied for user ''@'172.17.0.1' (using password: NO), mesmo tendo configurado a connectionString corretamente em termos de porta, usuário e senha, ter criado esse user no mysql do container e permitido requiições de qualquer endereço IP. Alguém sabe se é possível realizar essa migração em um banco sendo executado no docker? Gostaria de seguir dessa forma para estudo mesmo, não há necessidade, mas gostaria muito de saber como fazer

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

O erro pode ser causado pela configuração MYSQL_ROOT_HOST no seu contêiner Docker. Se estiver configurado como localhost, ele não corresponderá ao endereço IP 172.17.0.1. Você pode tentar remover a configuração MYSQL_ROOT_HOST ou configurá-la para %. [https://stackoverflow.com/questions/69903716/access-denied-for-user-root172-17-0-1-for-a-mysql-db-running-in-a-local-doc](Vi aqui no StackOverflow)

Você pode tentar criar um novo usuário, que corresponda ao mesmo host, algo tipo:

CREATE USER 'root'@'172.17.0.1' IDENTIFIED BY 'YOUR_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

É possível migrar de um banco de dados a partir de um conteiner:

docker exec -it <container_id> /bin/bash -c "npx sequelize db:migrate"

Substitua pelo ID do seu contêiner Docker.

Se tiver um erro diferente, ou ainda persistir o problema, avise aqui para a gente tentar ajudar.

Já tentei criar os usuários e conceder os privilégios e também colocar o parâmetro MYSQL_ROOT_HOST=%, e ainda assim obtenho o mesmo erro :(