MySql Errori connessione

di il
5 risposte

MySql Errori connessione

Salve a tutti,
volevo porvi un mio problema, ho sviluppato un programma in c++ che legge e scrive in un database MySql, attualmente tutte le query e funzionalità che ho implementato funzionano correttamente, però di quando in quando (o per lo meno non trovo motivo) ho degli errori di vario genere durante le connessioni.
Questo lo sò in quanto ho gestito gli errori MySql scrivendoli in un file di log.
Gli errori che riscontro sono i seguenti:
- mysql_real_connect() fallita:2003 HY000 Can't connect to MySQL server on 'ecoweb.volpato.info' (4)
- mysql_real_connect() fallita:2005 HY000 Unknown MySQL server host 'ecoweb.volpato.info' (2)
- mysql_real_connect() fallita:2003 HY000 Can't connect to MySQL server on 'ecoweb.volpato.info' (111)

Questi sono alcuni, il problema di fondo è che funziona tutto e a spot escono di questi errori, lo stesso codice gira in altri pc tutti in contemporanea, ed anche in quelle macchine,chi più chi meno, hanno lo stesso problema.

Le connessioni non sono sincronizzate tra le macchine, ognuna si connette in base a degli eventi, quindi le connessioni possono anche essere nello stesso momento teoricamente, anche se lo escludo di avere questa fortuna .
Qualcuno ha idea se è un problema lato server o client?

5 Risposte

  • Re: MySql Errori connessione

    Premesso che non ho nessuna esperienza di connessione con mysql, quello che ti posso suggerire è di porci una pezza fino a quando non hai capito (ed eventualmente risolto) il problema che sta alla base.
    Secondo me dovresti introdurre nel tuo codice dei ritentativi; se la mysql_real_connect() fallisce (magari lo fai solo su particolari codici di errore) aspetti magari mezzo secondo e riprovi, e magari fai 2 o 3 di questi ritentativi (non farne troppi, se la connessione esce per timeout rischi di generare delle lunghe attese!).
  • Re: MySql Errori connessione

    Ok proverò a seguire il tuo consiglio.
    Ti ringrazio per la risposta
  • Re: MySql Errori connessione

    Uno degli errori classici che si fanno e' quello di aprire una connessione e non chiuderla OPPURE aprire e chiudere continuamente le connessioni.

    Una connessiont TCP/IP non si chiude istantaneamente, ma devono passare un certo numero di secondi. Questa e' una cosa di configurazione a livello di sistema operativo.

    Quindi, quello che puo' succedere e' che non ci sono piu' porte, lato client, per creare una connessione TCP/IP bidirezionale, con la conseguenza che il dbms MySql puo' risultare non raggiungibile.

    La soluzione e' quella di usare un pool di connessioni, mediante il quale ridurre/controllare il numero di connessioni aperte e chiuse, giocando sul fatto che una connessione puo' essere riusata un numero infinito di volte, e non serve riautenticarsi ogni volta.
  • Re: MySql Errori connessione

    Ciao Migliorabile,
    tu dici che una volta instaurata la connessione una primavolta dovrei mantenere il riferimento al puntatore della connessione per ogni macchina?
    Senza mai chiuderla?
    Il sistema accetta solo connessioni cifrate quindi non so se questo può essere un problema.
  • Re: MySql Errori connessione

    Io attualmente apro e chiudo le connessioni ogni volta che si termina una serie di query, anche perchè non so quando può avvenire il successivo evento di quering.
Devi accedere o registrarti per scrivere nel forum
5 risposte