Slik løser du MySQL-feilen: For mange tilkoblinger

Introduksjon til MySQL-feilen: For mange tilkoblinger

Når du har en webapplikasjon (side, blogg, forum osv.) Som er i høy etterspørsel, det vil si et stort antall brukere besøker, betyr det økt forbruk på serveren. Hvis nettappen bruker en MySQL-database, og spørsmålene er veldig mange (på grunn av dårlig programmering av nettet eller av mange brukere som bruker nettet), er det en mulighet for at MySQL vil vise denne feilen:

mysqli_connect(): (HY000/1040): Too many connections

Hva betyr feilen MySQL: Too Many Connections?

Det betyr at for mange forespørsler kommer til MySQL, mer enn det kan akseptere, mer enn det kan stå i kø eller vente.

Hvordan løse det?

Enkelt, vi må øke den maksimale grensen for forespørsler (tilkoblinger) som MySQL støtter.

Jeg vil gi deg to alternativer for å løse dette problemet:

1. Vi redigerer filen /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

I den setter vi følgende under der det står [mysql]:

max_connections = 500 max_user_connections = 500

Dette vil øke det maksimale antallet tilkoblinger fra 100 (som er standard) til 500.

Vi lagrer og avslutter, så starter vi MySQL-tjenesten på nytt og det er det. Denne endringen er permanent.

2. En annen måte å løse dette problemet på er å endre maksimumsgrensen lik, men gjennom et MySQL-spørsmål.

La oss først vise den nåværende grensen:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Dette vil vise oss noe sånt som dette:

+ ----------------- + ------- + | Variabel_navn | Verdi | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Med andre ord er den nåværende grensen 151 tilkoblinger, vel, la oss heve den til 500 ved hjelp av et spørsmål:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Klar!

Problemet på denne måten er at når tjenesten startes på nytt, går denne konfigurasjonen tapt.

For å gi denne detaljene kan du lage et bash-skript som hver X-gang bekrefter, eller til og med legge til linjen i start- eller omstart-blokken til daemon

Men hvorfor vil jeg vite dette andre alternativet? ... vel, det var det jeg pleide å si. Men for en måned siden ignorerte en Ubuntu Server metode nr. 2, så ... i ekstreme tilfeller av dumt OS har vi dette andre alternativet som fungerer like bra well


6 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   nex sa

    Godt innlegg, MySql ... de bruker mye i FreeBSD, .... via web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 og PhpSysInfo Extensions.

    1.    KZKG ^ Gaara sa

      For dette måtte jeg installere FreeBSD, jeg tror ikke jeg har tid akkurat nå, jeg har bare byttet jobb og jeg har mange nye ansvarsoppgaver 🙁

  2.   Saul sa

    Jeg måtte nylig gjøre noe lignende for et prosjekt med nodejs. I mitt tilfelle økte det til 250, og det var nok, for nå har jeg det bra. Takk for informasjonen

  3.   Francisco sa

    Hei, kan du hjelpe meg med å skrive inn /etc/mysql/my.cfg?

    Jeg har en VPS, men jeg kan ikke komme inn med PUTTY.

    Hilsener.

  4.   agn sa

    For å løse problemet med alternativ 1. - Kommentert alternativ, og beholde endringene når du starter serveren på nytt, må filen redigeres i henhold til versjon:

    ////////////////////////////////////////////////// ////////////////////
    // Jeg endrer katalogen i Ubuntu 16.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    Jeg så /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Jeg endrer katalogen i Ubuntu 15.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Jeg endrer katalogen i Ubuntu gammel ////////////////////////
    ////////////////////////////////////////////////// ////////////////////

    Jeg så /etc/mysql/my.cnf

    ////////////////////////////////////////////////// ////////////////////
    // legg til denne linjen under [mysqld] eller [mysql] -taggen //
    // Start deretter serveren på nytt //
    ////////////////////////////////////////////////// ////////////////////
    max_connections = 500

  5.   indignert sa

    Opplæringen fra bunnen av på ingen tid forteller deg hvordan du endrer den