So beheben Sie den MySQL-Fehler: Zu viele Verbindungen

Einführung in den MySQL-Fehler: Zu viele Verbindungen

Wenn Sie eine Webanwendung (Website, Blog, Forum usw.) haben, die stark nachgefragt wird, dh die eine große Anzahl von Benutzern besucht, führt dies zu einem erhöhten Verbrauch auf dem Server. Wenn diese Web-App eine MySQL-Datenbank verwendet und die Abfragen wirklich viele sind (aufgrund einer schlechten Programmierung des Webs oder durch viele Benutzer, die das Web nutzen) besteht die Möglichkeit, dass MySQL diesen Fehler anzeigt:

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

Was bedeutet der MySQL: Too Many Connections-Fehler?

Dies bedeutet, dass zu viele Anfragen an MySQL kommen, mehr als es akzeptieren kann, mehr als es in die Warteschlange stellen oder warten kann.

Wie man es löst?

Ganz einfach, wir müssen die maximale Anzahl von Anforderungen (Verbindungen) erhöhen, die MySQL unterstützt.

Ich werde Ihnen zwei Möglichkeiten geben, um dieses Problem zu beheben:

1. Wir bearbeiten die Datei /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Darin setzen wir Folgendes unter [mysql]:

max_connections = 500 max_user_connections = 500

Dadurch wird die maximale Anzahl von Verbindungen von 100 (Standardeinstellung) auf 500 erhöht.

Wir speichern und beenden, starten den MySQL-Dienst neu und fertig. Diese Änderung ist dauerhaft.

2. Eine andere Möglichkeit, dieses Problem zu lösen, besteht darin, das maximale Limit gleich zu ändern, jedoch über eine MySQL-Abfrage.

Zeigen wir zunächst die aktuelle Grenze:

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

Dies wird uns ungefähr so ​​zeigen:

+ ----------------- + ------- + | Variablenname | Wert | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Mit anderen Worten, die aktuelle Grenze liegt bei 151 Verbindungen. Lassen Sie uns diese mithilfe einer Abfrage auf 500 erhöhen:

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

Bereit!

Das Problem auf diese Weise ist, dass diese Konfiguration beim Neustart des Dienstes verloren geht.

Um dieses Detail bereitzustellen, können Sie ein Bash-Skript erstellen, das jedes Mal überprüft wird, oder sogar die Zeile zum Start- oder Neustartblock des Daemons hinzufügen 😉

Aber warum möchte ich dann diese zweite Option kennenlernen? ... nun, das habe ich immer gesagt. Aber vor einem Monat hat ein Ubuntu-Server die Methode Nr. 2 ignoriert, also ... in extremen Fällen von albernem Betriebssystem haben wir diese zweite Option, die genauso gut funktioniert 😉


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   nex sagte

    Guter Beitrag, MySql… sie verwenden viel in FreeBSD,… .KZKG ^ Gaara ?,… Es wäre gut, wenn Sie einen Beitrag darüber verfassen, wie MySql in FreeBSD installiert und konfiguriert wird, wie: SSH (Secure-Shell), SSH ( über Web), SFTP (SSH-File Transfer Protocol), Apache - PHP-MySql, PHP5 und PhpSysInfo Extensions.

    1.    KZKG ^ Gaara sagte

      Dafür müsste ich FreeBSD installieren, ich glaube nicht, dass ich jetzt die Zeit habe, ich habe gerade den Job gewechselt und ich habe viele neue Aufgaben 🙁

  2.   Saul sagte

    Ich musste kürzlich etwas Ähnliches für ein Projekt mit nodejs tun. In meinem Fall stieg es auf 250 und das war genug, für jetzt geht es mir gut. Danke für die Auskunft

  3.   Francisco cisco~~POS=HEADCOMP sagte

    Hallo, können Sie mir bei der Eingabe von /etc/mysql/my.cfg helfen?

    Ich habe einen VPS, aber ich kann nicht mit PUTTY reinkommen.

    Grüße.

  4.   Köder sagte

    Um das Problem der Option 1.- Kommentierte Option zu lösen und die Änderungen beim Neustart des Servers beizubehalten, muss die Datei entsprechend der folgenden Version bearbeitet werden:

    //////////////////////////////////////////////////// //////////////////////
    // Ich ändere das Verzeichnis in Ubuntu 16.04 /////////////////////////////
    //////////////////////////////////////////////////// //////////////////////
    Ich habe /etc/mysql/mysql.conf.d/mysqld.cnf gesehen

    //////////////////////////////////////////////////// //////////////////////
    // Ich ändere das Verzeichnis in Ubuntu 15.04 /////////////////////////////
    //////////////////////////////////////////////////// //////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    //////////////////////////////////////////////////// //////////////////////
    // Ich ändere das Verzeichnis in Ubuntu alt ////////////////////////////
    //////////////////////////////////////////////////// //////////////////////

    Ich habe /etc/mysql/my.cnf gesehen

    //////////////////////////////////////////////////// //////////////////////
    // füge diese Zeile unter dem Tag [mysqld] oder [mysql] hinzu //
    // Starten Sie dann den Server neu //
    //////////////////////////////////////////////////// //////////////////////
    max_connections = 500

  5.   entrüstet sagte

    Das Tutorial von Grund auf erklärt Ihnen zu keinem Zeitpunkt, wie Sie es ändern können