Введение в ошибку 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, так что ... в крайних случаях глупой ОС у нас есть второй вариант, который работает так же хорошо 😉
Хороший пост, MySql ... они часто используются во FreeBSD, ... .KZKG ^ Gaara?, ... Было бы хорошо, если бы вы написали сообщение о том, как установить и настроить MySql во FreeBSD, например: SSH (безопасная оболочка), SSH ( через Интернет), SFTP (SSH-протокол передачи файлов), Apache - PHP-MySql, PHP5 и расширения PhpSysInfo.
Для этого мне пришлось бы установить FreeBSD, я не думаю, что сейчас у меня есть время, я только что сменил работу и у меня много новых обязанностей 🙁
Недавно мне пришлось сделать что-то подобное для проекта с nodejs. В моем случае он увеличился до 250, и мне этого хватило, пока у меня все хорошо. Спасибо за информацию
Здравствуйте, не могли бы вы мне помочь, как войти в /etc/mysql/my.cfg?
У меня есть VPS, но я не могу войти через PUTTY.
Привет.
Для решения проблемы Варианта 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
Учебник с нуля никогда не расскажет, как его изменить