如何在Amazon RDS数据库服务器实例上运行命令“mysqladmin flush-hosts”?

时间:2011-11-04 18:52:08

标签: mysql amazon-rds

我的数据库服务器出现故障,主机因许多连接错误而被阻止。它要求我用'mysqladmin flush-hosts'取消阻止

我应该如何以及在何处将此命令运行到我们的amazon rds数据库服务器?

谢谢

9 个答案:

答案 0 :(得分:79)

我不使用RDS,但使用普通的mysql,只需连接'root'用户即可。然后发出

FLUSH HOSTS;

sql查询。

即使在连接太多的情况下,mysql也应保留连接,以便SUPER用户可以连接(通常是root)

(CLI上的mysqladmin通常只是以root身份连接,并发出上面的sql:)

答案 1 :(得分:27)

登录您有权访问相关RDS实例的任何其他EC2实例,并安装并运行mysqladmin

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

系统会提示您输入密码

答案 2 :(得分:12)

当因为超出了max_connect_errors的值而阻止了Amazon RDS实例时,无法使用生成连接错误的主机来发出&#34; flush hosts&#34;命令,因为在该实例上运行的MySQL服务器阻止来自该主机的连接。

因此,您需要发出&#34; flush主机&#34;来自另一个 EC2实例或有权访问该RDS实例的远程服务器的命令。

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

如果这涉及启动新实例,或创建/修改安全组以允许外部访问,则可以更快地简单地登录RDS用户界面并重新启动被阻止的RDS实例。

答案 3 :(得分:9)

我通过从AWS管理控制台重新启动它来修复我的RDS实例上的此错误。 HTH

[编辑:lol downvotes]

答案 4 :(得分:5)

由于主机被阻止。尝试从其他主机连接并执行mysqladmin flush-hosts命令。

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

答案 5 :(得分:3)

在Amazon RDS上FLUSH HOSTS;可以从默认用户(RDS信息中的“主用户名”)执行,这会有所帮助。

答案 6 :(得分:1)

您必须通过安装了mysql的计算机连接RDS 我使用SSH托管VPS之一

在我登录我的VPS后(我使用了putty)很简单,在提示符中我输入了以下命令:

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

答案 7 :(得分:1)

您可以在RDS Admin上重新启动数据库。

答案 8 :(得分:-1)

您可以使用以下命令刷新主机本地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;

使用command-

检查veritable
show variables like "max_connections";
show variables like "max_connect_errors";