Як виправити помилку MySQL: забагато підключень

Вступ до помилки MySQL: Забагато підключень

Коли у вас є веб-застосунок (сайт, блог, форум тощо), який користується високим попитом, тобто його відвідує велика кількість користувачів, це призводить до збільшення споживання ресурсів сервера. Якщо цей веб-застосунок використовує базу даних MySQL, а запитів дуже багато ( через погане програмування веб-сайту або велику кількість користувачів ), MySQL може відображати таку помилку:

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

Що означає помилка MySQL: Забагато підключень?

Це означає, що до MySQL надходить занадто багато запитів, більше, ніж він може прийняти, більше, ніж може поставити в чергу або чекати.

Як це вирішити?

Просто, ми повинні збільшити максимальний ліміт запитів (з'єднань), які підтримує MySQL.

Я дам вам два варіанти вирішення цієї проблеми:

1. Редагуємо файл /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

У ньому ми помістимо наступне, де написано [mysql]:

max_connections = 500 max_user_connections = 500

Це збільшить максимальну кількість з'єднань зі 100 (що є типовим) до 500.

Ми зберігаємо і виходимо, потім перезапускаємо службу MySQL і все. Ця зміна є постійною.

2. Інший спосіб вирішення цієї проблеми – змінити максимальне обмеження, але за допомогою запиту MySQL.

Давайте спочатку покажемо поточний ліміт:

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

Це покаже нам щось подібне:

+ ----------------- + ------- + | Ім'я змінної | Значення | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Іншими словами, поточний ліміт - 151 з'єднання, ну, давайте піднімемо його до 500 за допомогою запиту:

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

Готовий!

Проблема таким чином полягає в тому, що при перезапуску служби ця конфігурація втрачається.

Щоб компенсувати цю деталь, ви можете створити сценарій bash, який перевіряє кожні X часу, або навіть додати рядок до блоку запуску або перезапуску демона 

Але чому тоді я хочу знати цей 2-й варіант? … ну, це те, що я сказав. Але місяць тому сервер Ubuntu проігнорував метод №1, тому... у крайніх випадках дурної ОС у нас є другий варіант, який працює так само добре 


Додати як пріоритетне джерело в Google