A conexão remota do MySQL falha (10060) - "Não é possível conectar ao servidor MySQL em domainname.com (10060)"


8

Eu desenvolvi um aplicativo no VB6 e estou usando um servidor de banco de dados MySQL online para armazenar os dados do meu aplicativo.

A primeira vez que tento me conectar ao meu servidor de banco de dados é bem-sucedida, mas depois de fechar meu aplicativo e iniciá-lo novamente, recebo:

Não foi possível conectar ao servidor MySQL (10060) "

Após algum tempo (aproximadamente 30 minutos), posso conectar-me ao banco de dados novamente.

  • Eu dei valores máximos para todo o sistema MySQL e variáveis ​​globais como connection_timeout , wait_timeout etc.
  • Eu concedi todas as permissões ao meu usuário MySQL.
  • O firewall do meu computador está desligado.
  • Todas as conexões são fechadas corretamente quando o aplicativo é fechado.

Eu perguntei ao pessoal técnico que fornece o serviço Online MySQL Database e eles me deram estas três razões:

  1. A máquina local de onde você está tentando se conectar não está na lista de permissões no servidor.
  2. O número máximo de conexões para o usuário foi excedido.
  3. O servidor MySQL estava inoperante no momento (embora eles dissessem que o servidor não estava inativo).

Como posso resolver os dois primeiros motivos ou determinar se eles são a causa do problema? Ou poderia haver outro problema não listado lá?


+1 para usar o VB6 em 2015!
precisa saber é o seguinte

consulte este link que encontrei: superuser.com/questions/1364906/… Resolvo meu problema com ele.
FarHooD

Respostas:


2

você precisa ter certeza de que existe:

1) usuário criado com acesso remoto, por exemplo, usuário @ 'xxxx'

2) existe uma conexão das duas máquinas (elas podem fazer ping um ao outro, por exemplo, ou acessar uma à outra por outro método) a porta é aberta entre as duas máquinas

3) my.ini/my.cnfexiste um parâmetro de conexão bloqueado como: bind-address=a.a.a.aouskip-networking

4) o serviço está em funcionamento quando você tenta se conectar a partir de outra máquina


0

Provavelmente, esse é um problema do lado da rede e o provedor de serviços de banco de dados precisa criar uma nova regra no firewall (iptables). Ainda precisamos confirmar algumas coisas do provedor. Como o comportamento não é estável (às vezes você pode se conectar e às vezes não). Portanto, não é um problema de privilégio do usuário (GRANT ALL ON ...)

  1. Verifique se eles incluíram a porta de escuta do MySQL na lista de desbloqueio / exceção do firewall. O mais comum é 3306
  2. Tente aumentar o parâmetro max_connection em my.cnf
  3. No my.cnf, verifique se ' skip-networking ' está comentado, Também bind-address = 127.0.0.1
  4. Qual é a saída se usarmos o seguinte na linha de comando telnet ip_mysql_server 3306

11
no windows telnet provavelmente não está disponível: use o powershell PS C: \ Windows \ system32> Novo objeto System.Net.Sockets.TcpClient ("ip_mysql_server", 3306) Cliente: System.Net.Sockets.Socket disponível: 78 Conectado: true <== isso indica que você pode alcançar o servidor ExclusiveAddressUse: Falso ReceiveBufferSize: 65536 SendBufferSize: 64512 ReceiveTimeout: 0 SendTimeout: 0 LingerState: System.Net.Sockets.LingerOption NoDelay: Falso
user906489

0

Forneça a saída do telnet (ip): porta

Eu tive o mesmo problema da última vez e o iptables é o culpado naquele momento.

Quando o servidor foi reinicializado, a regra iptables volta ao padrão e não aplicou o filtro para determinadas portas.

Verifique o iptables


0

Primeiro verifique se você concedeu os privilégios apropriados ao usuário em seu host atual através do qual você está tentando se conectar ao servidor MySQL.

  1. Verifique seu nome de host primeiro
  2. Então entre no MySQL através de superusuário como 'root'
  3. Verifique se os privilégios são fornecidos ou não select * from mysql.user where host="host_name"\G;
  4. Dê todos os privilégios primeiro e tente conectar-se novamente.

grant all on *.* to 'user'@'host_name' identified by 'Password';

Espero que isso seja útil para você.


0

Passei um dia inteiro batendo a cabeça tentando descobrir isso, e a rede Windows foi definida como pública em vez de privada, o que bloqueia todas as conexões de entrada. Espero que isso ajude alguém.


-1

alguns provedores de hospedagem bloqueiam, por padrão, o acesso remoto a seus servidores MySql por motivos de segurança. Se você precisar desbloquear o serviço de acesso remoto, informe-o para desbloquear esse serviço.

Caso contrário, teste seu aplicativo localmente, como localhost, e quando isso funcionar bem, altere o nome do host e assim por diante nos parâmetros do banco de dados em seu aplicativo e faça o upload para o servidor de hospedagem na Web, isso funciona bem !!!.

Tenha cuidado, para que o design do seu banco de dados verifique com o design do banco de dados local, isso é muito importante !!!

Espero que isso seja útil para você.


2
Você acha que eles bloqueiam apenas a cada segunda tentativa?
Dez

-1

Duas coisas a serem adicionadas aos usuários do mariadb:

1) o my.cnf é para nós também => lá encontrei a bind-address = 127.0.0.1linha

2) você precisa reiniciar o serviço após alterar o arquivo my.cnf

Espero que isto ajude

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.