
Я получаю сообщение об ошибке «Слишком много подключений» в своем веб-приложении:http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
Поэтому я хочу подключиться к базе данных, чтобы show full processes/g
иметь возможность отлаживать код. Я использую следующую команду CLI:
mysql -h domain.eu-west-1.rds.amazonaws.com -P 3306 -u username -p
Имя пользователя, которое я использую, — это имя пользователя master, созданное при запуске экземпляра. Насколько я понимаю, mysql всегда оставляет одно соединение свободным, чтобы позволить аккаунтам с привилегиями SUPER подключаться, однако когда я это делаю, я получаю ответ «слишком много ошибок».
Глядя на конфигурацию, имя пользователя master, похоже, имеет только супер привилегии на базу данных, а не на домен, это правильно? Как еще я могу войти в mysql для отладки сервера?
решение1
Это верно, RDS не позволяет никакой учетной записи иметь привилегию SUPER
. Это досадное ограничение в RDS.
Однако вашу проблему, похоже, можно «исправить» (или, по крайней мере, решить), увеличив max_connect_errors
группу параметров RDS для вашего экземпляра, что сделает RDS более терпимым к ошибкам подключения с вашего IP-адреса.
Ваш вопрос заставляет меня задуматься, не слишком ли много у вас связей... или слишком много ошибок.
Если возникли ошибки, попробуйте зайти с другого IP-адреса, счетчики можно сбросить с помощью FLUSH HOSTS;
.
Установка log_warnings
= 2 в группе параметров увеличит объем журналирования ошибок подключения (журнал ошибок доступен через консоль) и этомощьпомочь вам точно определить, что именно изначально приводит к увеличению количества ошибок на вашем хосте.
Изменения группы параметров будут применены к серверу «на горячем» уровне, где это возможно, но экран сведений об экземпляре рядом с группой параметров даст вам подсказку о том, находится ли применение изменений в состоянии ожидания, требует перезагрузки или завершено (синхронизировано).
Если проблема заключается только в «слишком большом количестве подключений», то единственным решением (если вы не можете заставить приложение разорвать некоторые соединения) является перезагрузка экземпляра, захват слота подключения и сохранение подключения, чтобы у вас был доступ, когда проблема возникнет снова.