Как исправить ошибку MySQL: слишком много подключений

Введение в ошибку MySQL: слишком много подключений

Когда у вас есть веб-приложение (сайт, блог, форум и т. Д.), Которое пользуется большим спросом, то есть посещается большим количеством пользователей, это приводит к увеличению потребления ресурсов на сервере. Если указанное веб-приложение использует базу данных MySQL и запросов действительно много (из-за плохого программирования в Интернете или из-за того, что многие пользователи используют Интернет), есть вероятность, что MySQL покажет эту ошибку:

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

Что означает ошибка MySQL: Too Many Connections?

Это означает, что в 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, или даже добавить строку в блок запуска или перезапуска демона 😉

Но тогда почему я хочу знать этот второй вариант? ... ну, я так говорил. Но месяц назад сервер Ubuntu проигнорировал метод №2, так что ... в крайних случаях глупой ОС у нас есть второй вариант, который работает так же хорошо 😉


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   NEX сказал

    Хороший пост, MySql ... они часто используются во FreeBSD, ... .KZKG ^ Gaara?, ... Было бы хорошо, если бы вы написали сообщение о том, как установить и настроить MySql во FreeBSD, например: SSH (безопасная оболочка), SSH ( через Интернет), SFTP (SSH-протокол передачи файлов), Apache - PHP-MySql, PHP5 и расширения PhpSysInfo.

    1.    КЗКГ ^ Гаара сказал

      Для этого мне пришлось бы установить FreeBSD, я не думаю, что сейчас у меня есть время, я только что сменил работу и у меня много новых обязанностей 🙁

  2.   Саул сказал

    Недавно мне пришлось сделать что-то подобное для проекта с nodejs. В моем случае он увеличился до 250, и мне этого хватило, пока у меня все хорошо. Спасибо за информацию

  3.   Франциско сказал

    Здравствуйте, не могли бы вы мне помочь, как войти в /etc/mysql/my.cfg?

    У меня есть VPS, но я не могу войти через PUTTY.

    Привет.

  4.   приманка сказал

    Для решения проблемы Варианта 1. - Вариант закомментированный, и сохранить изменения при перезапуске сервера, файл необходимо отредактировать согласно версии:

    ////////////////////////////////////////////////// ////////////////////
    // Я меняю каталог в Ubuntu 16.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    Я видел /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Я меняю каталог в Ubuntu 15.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Я меняю каталог в старом Ubuntu ////////////////////////
    ////////////////////////////////////////////////// ////////////////////

    Я видел /etc/mysql/my.cnf

    ////////////////////////////////////////////////// ////////////////////
    // добавляем эту строку под тегом [mysqld] или [mysql] //
    // Затем перезапускаем сервер //
    ////////////////////////////////////////////////// ////////////////////
    макс_подключения = 500

  5.   разгневан сказал

    Учебник с нуля никогда не расскажет, как его изменить