Ao executar meu código recebo este erro: (10061 Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente) Como posso resolver isso?
Obs: Meu database esta em uma máquina virtual no meu PC.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Ao executar meu código recebo este erro: (10061 Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente) Como posso resolver isso?
Obs: Meu database esta em uma máquina virtual no meu PC.
Olá Douglas.
Tudo bem?
Esse erro (10061) geralmente indica que a conexão com o servidor MySQL foi recusada. Isso pode ocorrer por vários motivos. Aqui estão algumas verificações e passos que você pode seguir para resolver o problema:
Verifique se o MySQL está em execução: Certifique-se de que o servidor MySQL está rodando na máquina virtual. Você pode fazer isso acessando a VM e executando o comando:
sudo service mysql status
ou
systemctl status mysql
Se o serviço não estiver em execução, você pode iniciá-lo com:
sudo service mysql start
Configuração do MySQL para aceitar conexões remotas:
Por padrão, o MySQL pode estar configurado para aceitar conexões apenas do localhost. Para permitir conexões remotas, você precisa editar o arquivo de configuração do MySQL (my.cnf ou mysqld.cnf).
Abra o arquivo de configuração:
sudo nano /etc/mysql/my.cnf
ou
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Procure pela linha:
bind-address = 127.0.0.1
e altere para:
bind-address = 0.0.0.0
Depois, reinicie o MySQL:
sudo service mysql restart
Configuração de firewall:
Certifique-se de que o firewall da máquina virtual permite conexões na porta 3306. Você pode adicionar uma regra de firewall para permitir essas conexões. Por exemplo, se estiver usando ufw:
sudo ufw allow 3306/tcp
Permissões de usuário no MySQL: Verifique se o usuário do MySQL tem permissão para acessar o banco de dados remotamente. Você pode conceder permissão com o seguinte comando SQL:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sua_senha' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Verifique a URI de conexão: Certifique-se de que a URI de conexão no seu código Flask está correta. Deve ser algo como:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:admin@<IP_DA_VM>/jogoteca'
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.