mysqli_sql_exception: Cannot assign requested address in

Esegundo ciclicamente diverse query e connessioni al db MySql, ricevo in maniera casuale (non su una query specifica) il seguente errore eccezione di connessione al db:

 

mysqli_sql_exception cannot assign requested address in

 

E come se si interrompesse o la connessione al db risultasse occupata (busy), come posso risolvere?

Aperta 5
MySql 07-07-2024 1 Risposta 142 Visite 0

Risposte ( 1 approvate )

  1. AskDB Staff
    +1
    06-07-2024 12:32:47
    Rispondi

    Il problema risiede proprio nell'esecuzione di molteplici query per le quali vengono aperte e chiuse (si auspica) diverse richieste di connessioni al db MySql in poche frazioni di secondo, la porta in locale per la connessione al DB è costantemente in esecuzione (running) e di fatto non riesce a gestire tutte queste richieste in così poco tempo perdendo la connessione e generando l'eccezione:

    mysqli_sql_exception cannot assign requested address in

     

    Per risolvere è necessario o ridurre il numero di query eseguite quasi in simultanea, oppure cercare di cumularle in una o più query unica (per le INSERT o UPDATE sulla stessa tabella è semplice).

     

    Se però la vostra soluzione per eseguire le query slq non può fare a meno di utilizzare tante aperture di connessioni al db quasi in contemporanea, potete ovviare a questo problema utilizzando una CONNESSIONE PERMANENTE al DB.

     

    Per farlo basta premettere la lettera "p:" all'indirizzo (IP) dell'host ove risiede il server del DB, in questo modo ad es:

    $link = mysqli_connect('p:192.168.1.1', 'example_user', 'example_password', 'my_name_db');

    La connessione permanente al DB consente di creare una connessione "in cache" che può essere riutilizzata più volte dal client (ad es. il browser) senza bisogna di crearla e distruggerla in continuazione come nel caso di utilizzo di questa domanda, in questo modo risolverete l'eccezione citata.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

AskDB Staff

AskDB Staff

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva