Как решить MySQL max_user_connections

При попытке войти в phpMyAdmin я получаю следующую ошибку.

Пользователь * * уже имеет более активные соединения «max_user_connections»

Может ли кто-нибудь дать мне знать, как закрыть эти соединения БД с конца сервера MySQL?

Спасибо за ваше время!

Здесь я думаю, что вы можете решить свою проблему max_connections

Также прочтите это http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

Лучше всего увеличить max_connections . Для экземпляра MySQL, обслуживающего несколько разных веб-приложений (raw php, WordPress, phpBB), для этого вам, вероятно, понадобится значение не менее 60.

Выполните эту команду, и вы узнаете, сколько глобальных соединений у вас доступно:

 show global variables like '%connections%' 

Вы можете узнать, сколько соединений используется в любой момент:

 show status like '%connected%' 

Вы можете узнать, что делает каждое подключение следующим образом:

 show full processlist 

Если бы я был вами, я бы постарался использовать глобальную ценность не менее 100 подключений. Ваш поставщик услуг должен быть в состоянии помочь вам, если у вас нет доступа к этому. Это необходимо сделать в конфигурации файла my.cnf для MySQL. Не устанавливайте его слишком высоко или вы рискуете, что ваш серверный процесс MySQL будет поглощать всю вашу оперативную память.

Второй подход позволяет вам распределять эти общие соединения с разными пользователями MySQL. Если у вас есть разные имена пользователей MySQL для каждого из ваших веб-приложений, этот подход будет работать для вас. Этот подход написан здесь. https://www.percona.com/blog/2014/07/29/prevent-mysql-downtime-set-max_user_connections/

Окончательный подход к решению этой проблемы более тонкий. Вероятно, вы используете веб-сервер Apache в качестве базовой технологии. Вы можете сократить количество задач Apache, запущенных одновременно, что, как ни парадоксально, увеличивает пропускную способность. Это связано с тем, что Apache отправляет запросы. Если у него есть несколько задач, эффективно ударяющих по очереди, это часто быстрее, чем множество задач, потому что есть меньше конфликтов. Он также требует меньше подключений MySQL, что позволит решить вашу ближайшую проблему. Это объясняется здесь: Перезагрузите Mysql автоматически, когда ubuntu на экземпляре EC2 micro убивает его, когда заканчивается память

Кстати, веб-приложения, такие как WordPress, используют постоянный пул соединений. То есть они устанавливают соединения с базой данных MySQL, открывают их и повторно используют. Если ваши приложения заняты, срок службы каждого соединения должен составлять несколько минут.

Во-первых, это взлом, но работает, особенно на общем хосте.
Иногда у всех нас есть плохие «соседи», верно?

Если у вас есть доступ к вашему / etc / увеличению лимита с 30 до 50, в my.cnf или через информационную схему.

  1. Чтобы игнорировать сообщение об ошибке, которое может увидеть посетитель, используйте @mysql_connect() .
  2. Если имеется более 30 MUC, используйте оператор « or die() », чтобы остановить запрос.
  3. Замените сообщение «или умереть» с помощью die(header(location: THIS PAGE)) и не забудьте mysql_close() ;

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

Это происходит из-за ограничения, указанного в конфигурации mysql, системной переменной max_user_connections .

Решения

Убийство запросов, которые застряли на бэкэнд, – это только решение, которое я бы предложил, если это запрос SELECT. Запросы, которые изменяют данные, такие как UPDATE / DELETE / INSERT, не должны быть убиты.

Во-вторых, вы можете использовать команду mysqladmin processlist для проверки того, что происходит внутри mysql.

Если блокировка вызывает вашу проблему, вы можете проверить, какой движок вы используете, и изменить его на другой. Документация IBM SolidDB на блокировки таблиц может помочь вам. Хотя для этого может быть и другая причина. (Например, возможно, ваши запросы слишком длинные из-за неоптимизированного запроса или слишком большой размер таблицы или у вас есть спам-firebase database).

  • Недопустимое сочетание сортировок (utf8_unicode_ci, IMPLICIT) и (utf8_general_ci, IMPLICIT) для операции '='
  • Слишком много автоматических приращений с ON DUPLICATE KEY UPDATE
  • Как получить список представлений MySQL?
  • Изображения в MySQL
  • Сравнение полнотекстовой поисковой системы - Lucene, Sphinx, Postgresql, MySQL?
  • Разница MySql между двумя временными метками в днях?
  • Как преобразовать время в часовой пояс устройства iPhone?
  • Студия Android getSlotFromBufferLocked: неизвестная ошибка буфера
  • Как сделать резервную копию одной таблицы в базе данных MySQL?
  • Есть ли способ получить идентификатор автоинкремента из подготовленного оператора
  • Как изменить тип данных для столбца в MySQL?
  • Давайте будем гением компьютера.