Jak naprawić błąd MySQL: za dużo połączeń

Wprowadzenie do błędu MySQL: zbyt wiele połączeń

W przypadku aplikacji internetowej (strony internetowej, bloga, forum itp.) o dużym obciążeniu, co oznacza dużą liczbę użytkowników, przekłada się to na zwiększone zużycie zasobów serwera. Jeśli ta aplikacja internetowa korzysta z bazy danych MySQL, a zapytania są bardzo liczne ( z powodu słabego programowania strony lub dużej liczby użytkowników ), MySQL może wyświetlić następujący błąd:

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

Co oznacza błąd MySQL: Too Many Connections?

Oznacza to, że do MySQL przychodzi zbyt wiele żądań, więcej niż może przyjąć, więcej niż może ustawić w kolejce lub czekać.

Jak to rozwiązać?

Po prostu musimy zwiększyć maksymalny limit żądań (połączeń), które obsługuje MySQL.

Dam ci dwie opcje rozwiązania tego problemu:

1. Edytujemy plik /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

W nim umieściliśmy następujące pod tym, gdzie jest napisane [mysql]:

max_connections = 500 max_user_connections = 500

Zwiększy to maksymalną liczbę połączeń ze 100 (wartość domyślna) do 500.

Zapisujemy i wychodzimy, a następnie ponownie uruchamiamy usługę MySQL i to wszystko. Ta zmiana jest trwała.

2. Innym sposobem rozwiązania tego problemu jest zmiana maksymalnego limitu, ale przy użyciu zapytania MySQL.

Najpierw pokażmy aktualny limit:

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

To pokaże nam coś takiego:

+ ----------------- + ------- + | Variable_name | Wartość | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Innymi słowy, obecny limit to 151 połączeń, cóż, podnieśmy go do 500 za pomocą zapytania:

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

Gotowy!

Problem polega na tym, że po ponownym uruchomieniu usługi ta konfiguracja jest tracona.

Aby nadrobić ten szczegół, możesz utworzyć skrypt bash, który sprawdza co X czasu, lub nawet dodać linię do bloku start lub restart demona 

Ale dlaczego chcę znać tę drugą opcję? … cóż, to właśnie powiedziałem. Ale miesiąc temu serwer Ubuntu zignorował metodę nr 2, więc... w skrajnych przypadkach głupiego systemu operacyjnego mamy drugą opcję, która działa równie dobrze 


Dodaj jako preferowane źródło w Google