Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySQL] SQL Server has gone away

    Ho realizzato uno script che mi permette di aggiornare un database tramite un upload di un file SQL. Il file SQL è sempre stato delle dimensioni di 1,2-1,8 Mb e non ha mia dato problemi. Da qualche tempo durante l'aggiornamento del db esce il famoso errore:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e31'

    [MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt]MySQL server has gone away

    importa.asp, line 16
    Leggendo nel manuale del MySql sembra che questo errore viene restituito quando il server sta inattivo per molto tempo. Allora ho provato a fare l'aggiornamento del database tramite l'upload del PhpMyAdmin e funziona tutto, così come funziona l'aggiornamento fatto da riga di comando sempre nel PhpMyAdmin.
    Verificando le variaili del MySQL, ho notato che il wait_timeout è impostato a 28800 (che non capisco se sono secondi o millisecondi).
    L'errore del server has gone away mi viene restituito dopo 20 secondi esatti della chiamata della pagina.
    Io non so più dove sbattere la testa, le ho provate tutte e non saprei neanche come creare un altro tipo di import da file
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  2. #2
    28.000 sono i secondi di attesa (8 ore) per una connessione attivata tra client e server. In pratica per non rifare la procedura di connessione tra apache (o altro client/driver) e mysql dopo l'utilizzo da parte di un client, la connessione viene tenuta in piedi ma sleepping. Se nel contempo arriva un'altra richiesta da parte dello stesso client la connessione viene riassegnata senza ulteriori formalita' se non quella di identificazione dell'utente che utilizza il client. Quindi nulla a che fare con il problema.

    Server is gone away e' una mancata risposta nei tempi attesi dal client da parte del server. Prova ad aumentare max_allowed_packet nel my.ini. Di default e' settato a 1 mega.

    Sempre che non ci siano altri errori come spazio su disco, errori nella tabella o altro anche se in questi casi la segnalazione potrebbe / dovrebbe essere diversa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Grazie per la risposta.
    Ho trovato un file my.ini nella directory principale del MySql, però non riesco a trovare nessuna riga che si riferisca al max_allowe_packet. Inoltre ho trovato come modificare il valore dal riga di comando:

    codice:
    mysql --max_allowed_packet=16M
    però mi restituisce errore in tutta la riga
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  4. #4
    file my.ini

    aggiungi al fondo

    #Max packetlength to send/receive from to server.
    max_allowed_packet=16M

    il file di config. di mysql ragiona a questo modo: in mancanza di info usa il default. In pratica quando vuoi variare qualcosa che non trovi in elenco del my.ini devi aggiungere la riga di istruzione. Ha i suoi vantaggi, ma non suggerisce le variazioni possibili. E forse e' meglio.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.