Kuinka korjata MySQL-virhe: Liian monta yhteyttä

Johdanto MySQL-virheeseen: Liian monta yhteyttä

Kun sinulla on verkkosovellus (sivusto, blogi, foorumi jne.), Jolla on suuri kysyntä eli jossa käy suuri määrä käyttäjiä, tämä tarkoittaa lisääntynyttä palvelimen kulutusta. Jos mainittu verkkosovellus käyttää MySQL-tietokantaa ja kyselyitä on todella paljon (johtuen verkon huonosta ohjelmoinnista tai siitä, että monet webiä käyttävät käyttäjät ovat), on mahdollista, että MySQL näyttää tämän virheen:

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

Mitä MySQL: Liian monet yhteydet -virhe tarkoittaa?

Se tarkoittaa, että liian monta pyyntöä tulee MySQL: ään, enemmän kuin se voi hyväksyä, enemmän kuin se voi jonottaa tai odottaa.

Kuinka ratkaista se?

Yksinkertainen, meidän on lisättävä MySQL: n tukemien pyyntöjen (yhteyksien) enimmäismäärää.

Annan sinulle kaksi vaihtoehtoa ongelman korjaamiseksi:

1. Muokkaamme tiedostoa /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Siinä laitamme seuraavan kohtaan, jossa sanotaan [mysql]:

max_connections = 500 max_user_connections = 500

Tämä kasvattaa yhteyksien enimmäismäärää 100: sta (mikä on oletus) 500: een.

Tallennamme ja poistumme, käynnistämme sitten MySQL-palvelun uudelleen ja siinä kaikki. Tämä muutos on pysyvä.

2. Toinen tapa ratkaista tämä ongelma on muuttaa enimmäisrajaa yhtä suureksi, mutta MySQL-kyselyn avulla.

Näytetään ensin nykyinen raja:

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

Tämä näyttää meille jotain tällaista:

+ ----------------- + ------- + | Muuttujan_nimi | Arvo | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Toisin sanoen, nykyinen raja on 151 yhteyttä, nostetaan se 500: een kyselyn avulla:

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

Ready!

Tällä tavalla ongelmana on, että kun palvelu käynnistetään uudelleen, tämä kokoonpano menetetään.

Tämän yksityiskohdan toimittamiseksi voit tehdä bash-komentosarjan, joka tarkistaa joka X-kerta, tai jopa lisätä rivin daemonin aloitus- tai uudelleenkäynnistyslohkoon 😉

Mutta miksi sitten haluan tietää tämän toisen vaihtoehdon? ... no, niin sanoin. Mutta kuukausi sitten Ubuntu Server ohitti menetelmän nro 2, joten ... äärimmäisissä tapauksissa typerässä käyttöjärjestelmässä meillä on tämä toinen vaihtoehto, joka toimii yhtä hyvin 😉


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

6 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   nex dijo

    Hyvä viesti, MySql ... he käyttävät paljon FreeBSD: ssä, ... .KZKG ^ Gaara?, ... Olisi hyvä, jos kirjoitat viestin siitä, kuinka MySql asennetaan ja määritetään FreeBSD: ssä, kuten: SSH (suojattu - shell), SSH ( Webin kautta), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 ja PhpSysInfo-laajennukset.

    1.    KZKG ^ Gaara dijo

      Tätä varten minun olisi asennettava FreeBSD, en usko, että minulla on aikaa juuri nyt, vaihdoin vain työpaikkaa ja minulla on paljon uusia tehtäviä 🙁

  2.   Saul dijo

    Minun piti äskettäin tehdä jotain vastaavaa projektille, jossa oli nodejs. Minun tapauksessani se nousi 250: een ja se riitti, toistaiseksi menen hyvin. Kiitos tiedoista

  3.   Francisco dijo

    Hei, voisitko auttaa minua kuinka kirjoittaa /etc/mysql/my.cfg?

    Minulla on VPS, mutta en pääse sisään PUTTYn kanssa.

    Tervehdys.

  4.   syötti dijo

    Vaihtoehto 1. - Kommentoitu -vaihtoehdon ongelman ratkaisemiseksi ja muutosten säilyttämiseksi palvelimen uudelleenkäynnistyksen yhteydessä tiedostoa on muokattava version mukaan:

    //////////////////////////////////////////////////// //// ////////////////////
    // Muutan hakemistoa Ubuntussa 16.04 //////////////////////////
    //////////////////////////////////////////////////// //// ////////////////////
    vi /etc/mysql/mysql.conf.d/mysqld.cnf

    //////////////////////////////////////////////////// //// ////////////////////
    // Muutan hakemistoa Ubuntussa 15.04 //////////////////////////
    //////////////////////////////////////////////////// //// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    //////////////////////////////////////////////////// //// ////////////////////
    // Muutan hakemistoa vanhassa Ubuntussa //////////////////////////
    //////////////////////////////////////////////////// //// ////////////////////

    vi /etc/mysql/my.cnf

    //////////////////////////////////////////////////// //// ////////////////////
    // lisää tämä rivi tagin [mysqld] tai [mysql] alle //
    // Käynnistä palvelin sitten uudelleen //
    //////////////////////////////////////////////////// //// ////////////////////
    max_connections = 500

  5.   tuohtunut dijo

    Opetusohjelma tyhjästä ei missään vaiheessa kerro, kuinka sitä muutetaan