Connessione MySQL remota non riuscita (10060) - "Impossibile connettersi al server MySQL su domainname.com (10060)"


8

Ho sviluppato un'applicazione in VB6 e sto usando un server di database MySQL online per archiviare i dati della mia applicazione.

La prima volta che provo a connettermi al mio server di database ha esito positivo, ma dopo aver chiuso l'applicazione e averlo riavviato ottengo:

Impossibile connettersi al server MySQL (10060) "

Dopo un po 'di tempo (circa 30 minuti), riesco nuovamente a collegarmi con successo al database.

  • Ho dato i valori massimi a tutto il sistema MySQL e alle variabili globali come connection_timeout , wait_timeout ecc.
  • Ho concesso tutte le autorizzazioni al mio utente MySQL.
  • Il firewall sul mio computer è disattivato.
  • Tutte le connessioni vengono chiuse correttamente alla chiusura dell'applicazione.

Ho chiesto alle persone tecniche che forniscono il servizio di database MySQL online e mi hanno dato questi tre motivi:

  1. Il computer locale da cui si sta tentando di connettersi non è autorizzato sul server.
  2. Il numero massimo di connessioni per l'utente è stato superato.
  3. All'epoca il server MySQL era inattivo (sebbene dicessero che il loro server non era inattivo).

Come posso risolvere i primi due motivi o determinare che sono la causa del problema? O potrebbe esserci un altro problema non elencato lì?


+1 per l'utilizzo di VB6 nel 2015!
raphael75,

vedi questo link che ho trovato: superuser.com/questions/1364906/… Risolvo il mio problema con esso.
FarHooD,

Risposte:


2

devi assicurarti che ci sia:

1) utente creato con accesso remoto, ad esempio utente @ 'xxxx'

2) esiste una connessione tra le due macchine (possono fare un ping a vicenda per esempio o accedervi l'un l'altro con un altro metodo) la porta viene aperta tra le due macchine

3) all'interno my.ini/my.cnfè presente un parametro di blocco come: bind-address=a.a.a.aoskip-networking

4) il servizio è attivo e funzionante quando si tenta di connettersi dall'altra macchina


0

Molto probabilmente si tratta di un problema di rete e il fornitore di servizi di database deve creare una nuova regola nel firewall (iptables). Dobbiamo ancora confermare alcune cose dal fornitore. Poiché il comportamento non è costante (a volte è possibile connettersi, a volte no). Quindi non è un problema di privilegio dell'utente (GRANT ALL ON ...)

  1. Assicurati di aver incluso la porta di ascolto MySQL nella lista di firewall / sblocco / eccezioni. Più comunemente è 3306
  2. Prova ad aumentare il parametro max_connection in my.cnf
  3. In my.cnf assicurati che ' skip-networking ' sia commentato, Anche bind-address = 127.0.0.1
  4. Qual è l'output se utilizziamo quanto segue dalla riga di comando telnet ip_mysql_server 3306

1
su windows telnet probabilmente non è disponibile: usa PowerShell PS C: \ Windows \ system32> New-Object System.Net.Sockets.TcpClient ("ip_mysql_server", 3306) Client: System.Net.Sockets.Socket Disponibile: 78 Connesso: True <== indica che è possibile raggiungere il server ExclusiveAddressUse: False ReceiveBufferSize: 65536 SendBufferSize: 64512 ReceiveTimeout: 0 SendTimeout: 0 LingerState: System.Net.Sockets.LingerOption NoDelay: False
user906489

0

Fornire l'output di telnet (ip): port

L'ultima volta ho avuto lo stesso problema e iptables è il colpevole in quel momento.

Quando il server viene riavviato, la regola iptables diventa predefinita e non applica il filtro per determinate porte.

Controlla gli iptables


0

Prima controlla se hai dato i privilegi adeguati all'utente sul tuo host attuale attraverso il quale stai provando a connetterti al server MySQL.

  1. Controlla prima il tuo nome host
  2. Quindi accedi a MySQL tramite super user come 'root'
  3. Controlla se i privilegi sono forniti o meno select * from mysql.user where host="host_name"\G;
  4. Dai prima tutti i privilegi, quindi prova a connetterti di nuovo.

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

Spero che questo ti sia di aiuto.


0

Ho trascorso un'intera giornata a sbattere la testa cercando di capire questo e si è scoperto che la rete di Windows era impostata come pubblica anziché privata che bloccava tutte le connessioni in entrata. Spero che questo aiuti qualcuno.


-1

alcuni provider di hosting bloccano di default l'accesso remoto ai suoi server MySql per motivi di sicurezza. Se è necessario sbloccare il servizio di accesso remoto, dire loro per sbloccare questo servizio.

Altrimenti, prova la tua app localmente, come localhost e quando funziona correttamente, cambia il nome host e così via i parametri del database nella tua app e carica sul tuo server di web hosting, va bene !!!.

Fai attenzione, che la progettazione del tuo database verifichi con la progettazione del database locale, questo è molto importante !!!

Spero che questo ti sia di aiuto.


2
Pensi che blocchino solo ogni secondo tentativo?
dezso

-1

Due cose da aggiungere per gli utenti di mariadb:

1) my.cnf è anche per noi => lì ho trovato la bind-address = 127.0.0.1linea

2) è necessario riavviare il servizio dopo aver modificato il file my.cnf

Spero che sia di aiuto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.