Я открыл слишком много подключений к MySQL и теперь не могу получить к нему доступ. Он говорит: «Слишком много подключений». Как я могу закрыть все эти подключения? Я также не знаю, как его перезапустить, это может решить проблему.
Я ответил на этот вопрос о массовом уничтожении подключений к БД в DBA StackExchange еще в мае 2011 года.
Что может позволить человеку войти в mysql в таких стрессовых условиях? Ответ прост: НЕ ДАЙТЕ ВСЕМ СУПЕР ПРИВИЛЕГИИ !!!
Почему СУПЕР Привилегия?
Согласно Документация MySQL:
Привилегия SUPER позволяет учетной записи использовать CHANGE MASTER TO, KILL или mysqladmin kill для уничтожения потоков, принадлежащих другим учетным записям (вы всегда можете убить свои собственные потоки), PURGE BINARY LOGS, изменения конфигурации с помощью SET GLOBAL для изменения глобальных системных переменных, mysqladmin команда debug, включение или отключение ведения журнала, выполнение обновлений, даже если включена системная переменная read_only, запуск и остановка репликации на подчиненных серверах, указание любой учетной записи в атрибуте DEFINER сохраненных программ и представлений, а также позволяет вам подключиться (один раз) даже если достигнут предел подключений, контролируемый системной переменной max_connections.
В свете этого, обычные клиентские подключения не должны иметь привилегий SUPER. Как только количество подключений к БД достигнуто = max_connections, будет разрешено только еще одно соединение, и это одно соединение должно иметь привилегию SUPER. Если у всех и у его бабушки есть привилегия SUPER, все ставки отключены, и никто не сможет войти.
У вас есть три следующих варианта:
Пуск -> Выполнить -> Services.msc
Найдите MySQL, щелкните правой кнопкой мыши и выберите перезапуск
Пуск -> Выполнить -> CMD
net stop MySQL войти
чистый старт MySQL войти
если у вас есть доступ к вашему серверу, перезапустите mysql. если у вас нет доступа к вашему серверу, просто подождите.
Некоторые веб-приложения всегда сообщают о «слишком большом количестве подключений», если они не могут подключиться к базе данных. Если вы получаете эту ошибку даже после перезапуска MySQL, то, вероятно, настоящая ошибка - «нет соединения». Попробуйте подключиться к MySQL другим способом, с помощью командной строки, phpmydmin или другого сайта, управляемого MySQL, на том же сервере.
Если вы можете подключиться к MySQL с помощью альтернативных средств, проверьте строку подключения на своем веб-сайте (бит, который дает имя пользователя и пароль для MySQL), а затем подключитесь с этими учетными данными, что-то могло быть изменено, но не обновлено в сценарии.
Если вы вообще не можете подключиться к MySQL и перезапуск MySQL не помог, вам нужно будет посмотреть свой журнал событий (вы сказали, что это был сервер Windows в комментарии). Перезапуск сервера - это ярлык, который исключит множество проблем, а также проверьте, не закончилось ли у вас место на диске.
Я решил это! Это была ошибка в коде C #, где я случайно зациклил "connection.Open ()". -.-
Class1 сказал: «Эй, Class2, открой соединение!» и Class2 ответил: «Соединение открыто! теперь откройте соединение, Class1! '. Затем Class1 открыл соединение и сказал Class2: «Откройте соединение тоже!» и так далее ...
Прошу прощения за тупость, я просто не догадался об этом -.-
3 дня застрял (Y)
Ура!
Вы должны иметь возможность войти в mysql с пользователем root.
Оттуда вы можете запустить «показать список процессов». Затем вы можете запустить kill 'Id', чтобы уничтожить соединения.