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.
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.