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

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 :(