Как запустить команду «mysqladmin flush-hosts» на экземпляре сервера базы данных Amazon RDS? - PullRequest
56 голосов
/ 04 ноября 2011

Я получил ошибку сервера базы данных, говорит, что хост заблокирован из-за многих ошибок подключения. Он просит меня разблокировать с помощью «mysqladmin flush-hosts»

как и где мне выполнить эту команду на нашем сервере баз данных amazon rds?

спасибо

Ответы [ 9 ]

80 голосов
/ 05 ноября 2011

Я не использую RDS, но с обычным mysql, просто соединяюсь с пользователем 'root'.Затем выполните запрос

FLUSH HOSTS;

sql.

Даже в случае слишком большого количества соединений mysql должен сохранять резервное соединение, чтобы СУПЕР-пользователь мог подключиться (обычно root)

(mysqladmin в CLI обычно просто подключается как root в любом случаеи выдает вышеупомянутый sql:)

28 голосов
/ 12 марта 2013

Войдите в любой другой имеющийся у вас экземпляр EC2, у которого есть доступ к рассматриваемому экземпляру RDS, в котором установлен mysqladmin, и запустите

mysqladmin -h <RDS ENDPOINT URL> -P 3306 -u <USER> -p flush-hosts

. Вам будет предложено ввести пароль

12 голосов
/ 18 марта 2014

Когда экземпляр Amazon RDS заблокирован из-за превышения значения max_connect_errors, вы не можете использовать хост, сгенерировавший ошибки соединения, для выдачи команды «flush hosts», поскольку MySQL Server работает на в этот момент экземпляр блокирует соединения с этого хоста.

Поэтому необходимо выполнить команду «flush hosts» из другого экземпляра EC2 или удаленного сервера, который имеет доступ к этому экземпляру RDS.

mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts

Если это связано с запуском нового экземпляра или созданием / изменением групп безопасности для разрешения внешнего доступа, может быть быстрее войти в пользовательский интерфейс RDS и перезагрузить заблокированный экземпляр RDS.

9 голосов
/ 12 октября 2012

Я исправил эту ошибку на своем экземпляре RDS, перезагрузив его из консоли управления AWS. НТН

[править: lol downvotes]

5 голосов
/ 28 августа 2013

Так как хосты заблокированы.попробуйте подключить его с другого хоста и выполнить команду mysqladmin flush-hosts.

mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
3 голосов
/ 11 июня 2012

В Amazon RDS FLUSH HOSTS; может выполняться от пользователя по умолчанию («Главное имя пользователя» в информации RDS), и это помогает.

1 голос
/ 15 января 2014

Вы можете перезапустить базу данных в RDS Admin.

1 голос
/ 09 октября 2012

Вы должны будете подключить свой RDS через компьютер, на котором на нем установлен mysql. Я использовал один из моих VPS-хостов, используя SSH

После того, как я вошел в свой VPS (я использовал замазку) Это было просто,в командной строке я ввел следующую команду:

mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
0 голосов
/ 18 января 2016

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

mysqladmin -u [username] -p flush-hosts
**** [MySQL password]

или

mysqladmin flush-hosts -u [username] -p
**** [MySQL password]

Хотя сервер базы данных Amazon RDS находится в сети, используйте следующую команду, например, как сбросить сетьСервер MySQL:

mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts 

В качестве дополнительного предложения вы можете навсегда решить проблему с ошибкой заблокированных многих подключений, отредактировав файл my.ini [файл конфигурации Mysql]

изменить переменные max_connections = 10000;

или

войдите в MySQL с помощью командной строки -

mysql -u [username] -p
**** [MySQL password]

поместите приведенную ниже команду в окно MySQL

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;

проверьте правильность с помощью команды-

show variables like "max_connections";
show variables like "max_connect_errors";
...