aplicarea unei

Toate instrucțiunile din această secțiune se aplică, de asemenea, o eroare de conexiune la server legate de pierdut în timpul interogării.

Cele mai frecvente erori de server MySQL a dispărut este rezultatul unui timeout conexiunea și închiderea serverului. În mod implicit, serverul închide conexiunea după 8 ore de inactivitate. Aveți posibilitatea să modificați limita de timp, setarea la pornirea mysqld wait_timeout variabilă.

Un alt motiv comun pentru obtinerea de eroare de server MySQL a plecat departe este de a emite comanda „închidere“ pe conexiunea MySQL cu încercarea ulterioară de a executa o interogare pe conexiunea închisă.

În cazul în care este primit în scenariu, apoi repetați pur și simplu cererea de la client că conexiunea este restabilită automat.

De obicei, în acest caz, având în vedere următoarele coduri de eroare (pe care o obține depinde de sistemul de operare):

Clientul nu poate trimite o cerere la server.

Clientul nu a primit o eroare la trimiterea solicitării la server, dar, de asemenea, nu a primit un răspuns complet (sau cel puțin unele răspunsuri la), la cerere.

Eroarea va fi, de asemenea, emisă în cazul în care cineva distruge cu executare fir nomerpotoka ucide.

Verificați dacă MySQL pe picior de plecare, puteți rulând versiunea mysqladmin și examinarea timpul de funcționare (timpul de funcționare). Dacă problema este într-o finalizare mysqld de urgență. trebuie să se concentreze pe găsirea cauzei accidentului. În acest caz, ar trebui să verificați mai întâi dacă va fi distrus prin MySQL din nou atunci când re-setarea cerere (a se vedea secțiunea A.4.1, «Ce să fac dacă MySQL defectează des").

Aceste erori vor fi emise la un server la trimiterea interogarea greșită sau prea mult timp. Dacă mysqld devine pachetul greșit sau prea mare, serverul presupune că clientul că ceva este greșit, și închide conexiunea. Dacă aveți nevoie pentru a efectua interogări tridimensionale (de exemplu, atunci când se lucrează cu mare tip coloane BLOB), puteți mări dimensiunea limitei de interogare pornind mysqld cu -O max_allowed_packet = # (implicit este de 1 MB). Memoria suplimentară este alocată la cerere, astfel încât mysqld va aloca mai multă memorie numai atunci când a emis la o cerere mare, sau atunci când mysqld trebuie să returneze un rând rezultat mare!

Puteți obține, de asemenea, o conexiune de pierdut dacă ați trimis un pachet mai mare de 16 MB, în cazul în care clientul dvs. este mai vechi decât 4.0.8, iar serverul dvs. este 4.0.8 sau mai târziu.

Dacă aveți dorința de a face un raport cu privire la această problemă, din greșeală, asigurați-vă că pentru a include următoarele informații în ea:

În cazul în care o anumită interogare ucide mysqld. și tabelele utilizate în ea, înainte de interogare testate folosind CHECK TABLE. este de dorit să facă un test de control (a se vedea secțiunea E.1.6, «Crearea unui caz test cu un tabel deteriorat").

valoare variabilă Wait_timeout în serverul (această valoare oferă variabile mysqladmin).

Informații cu privire la dacă ați încercat să rulați mysqld cu --log și verificați dacă interogarea emisă apare în jurnal.