1
resposta

Erro de conexão com servidor MySQL (10061)

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.

1 resposta

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:

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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;
    
  5. 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.