sql >> Database teknologi >  >> RDS >> Mysql

PHP Mysql PDO:Generel fejl:2006 MySQL-serveren er forsvundet

Nogle andre almindelige årsager til, at MySQL-serveren er gået væk, er:

  • Du (eller db-administratoren) har dræbt den kørende tråd med en KILL-sætning eller en mysqladmin kill-kommando.

  • Du forsøgte at køre en forespørgsel efter at have lukket forbindelsen til serveren. Dette indikerer en logisk fejl i programmet, som bør rettes.

  • En klientapplikation, der kører på en anden vært, har ikke de nødvendige rettigheder til at oprette forbindelse til MySQL-serveren fra den vært.

  • Du fik en timeout fra TCP/IP-forbindelsen på klientsiden. Dette kan ske, hvis du har brugt kommandoerne:mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...) eller mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...). I dette tilfælde kan en forøgelse af timeout hjælpe med at løse problemet.

  • Du er stødt på en timeout på serversiden, og den automatiske genforbindelse i klienten er deaktiveret (genopret forbindelsesflaget i MYSQL-strukturen er lig med 0).

  • Du bruger en Windows-klient, og serveren havde afbrudt forbindelsen (sandsynligvis fordi wait_timeout udløb), før kommandoen blev udstedt.

  • Problemet på Windows er, at MySQL i nogle tilfælde ikke får en fejl fra OS, når man skriver til TCP/IP-forbindelsen til serveren, men får i stedet fejlen, når man forsøger at læse svaret fra forbindelsen.

  • Løsningen på dette er enten at lave en mysql_ping() på forbindelsen, hvis der er gået lang tid siden sidste forespørgsel (det gør Connector/ODBC) eller sætte wait_timeout på mysqld-serveren så højt, at det i praksis aldrig gange ud.

  • Du kan også få disse fejl, hvis du sender en forespørgsel til serveren, der er forkert eller for stor. Hvis mysqld modtager en pakke, der er for stor eller ude af drift, antager den, at noget er gået galt med klienten og lukker forbindelsen. Hvis du har brug for store forespørgsler (hvis du for eksempel arbejder med store BLOB-kolonner), kan du øge forespørgselsgrænsen ved at indstille serverens max_allowed_packet-variabel, som har en standardværdi på 4MB. Du skal muligvis også øge den maksimale pakkestørrelse i klientenden. Flere oplysninger om indstilling af pakkestørrelsen findes i afsnit B.5.2.10, "Pakken er for stor".

  • En INSERT- eller REPLACE-sætning, der indsætter rigtig mange rækker, kan også forårsage denne slags fejl. En af disse udsagn sender en enkelt anmodning til serveren uanset antallet af rækker, der skal indsættes; Derfor kan du ofte undgå fejlen ved at reducere antallet af rækker, der sendes pr. INSERT eller REPLACE.

  • Du får også en tabt forbindelse, hvis du sender en pakke på 16 MB eller større, hvis din klient er ældre end 4.0.8 og din server er 4.0.8 og nyere, eller omvendt.

  • Det er også muligt at se denne fejl, hvis værtsnavnsopslag mislykkes (for eksempel hvis den DNS-server, som din server eller dit netværk er afhængig af, går ned). Dette skyldes, at MySQL er afhængig af værtssystemet for navneopløsning, men ikke har nogen mulighed for at vide, om det virker – set fra MySQL's synspunkt kan problemet ikke skelnes fra enhver anden netværkstimeout.

  • Du kan også se fejlen MySQL-serveren er gået væk, hvis MySQL er startet med --skip-netværksindstillingen.

  • Et andet netværksproblem, der kan forårsage denne fejl, opstår, hvis MySQL-porten (standard 3306) er blokeret af din firewall, og dermed forhindrer enhver forbindelse overhovedet til MySQL-serveren.

  • Du kan også støde på denne fejl med applikationer, der splitter underordnede processer, som alle forsøger at bruge den samme forbindelse til MySQL-serveren. Dette kan undgås ved at bruge en separat forbindelse til hver underordnede proces.

  • Du har stødt på en fejl, hvor serveren døde under udførelsen af ​​forespørgslen.

Tjek dette link:Gone Away




  1. php:hvordan ændres strengdata til numeriske data

  2. Ret "FEJL:kolonnen "colname" eksisterer ikke" i PostgreSQL, når du bruger UNION, EXCEPT eller INTERSECT

  3. Antal læste rækker / Faktiske rækker Læs advarsler i Plan Explorer

  4. Hvad sker der egentlig med den søgen?