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

问题描述 投票:0回答:11

我遇到数据库服务器故障,表示由于许多连接错误,主机被阻止。它要求我使用“mysqladminlush-hosts”解锁

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

谢谢你

mysql amazon-rds
11个回答
85
投票

对于普通 MySQL,只需以“root”管理超级用户身份连接,然后发出命令:

FLUSH HOSTS

即使在连接太多的情况下,MySQL 也应该保留一个连接,以便超级用户可以连接。

无论如何,

mysqladmin
客户端通常都会以root身份连接并发出上述SQL。


31
投票

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

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

系统将提示您输入密码


16
投票

当 Amazon RDS 实例因超过 max_connect_errors 的值而被阻止时,您不能使用生成连接错误的主机发出“刷新主机”命令,因为此时实例上运行的 MySQL 服务器正在运行阻止来自该主机的连接。

因此,您需要从有权访问该 RDS 实例的另一个 EC2 实例或远程服务器发出“刷新主机”命令。

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

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


11
投票

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

[编辑:哈哈反对票]


5
投票

在 Amazon RDS 上

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


5
投票

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

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

2
投票

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

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

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

1
投票

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


0
投票

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

0
投票

我遇到了类似的问题,在使用本地 dbeaver 连接到 mysql RDS 生产服务器时,我遇到了

"Host 'xx.xx.xx.xx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

我通过从生产子网中的 EC2 运行以下命令来解决该问题

首先我在ec2上安装了mysql客户端

sudo yum install mysql

然后我执行以下命令来刷新主机

mysql -h <host-name> -P <port> -u <username> --database=<database-name> -p -e "FLUSH HOSTS;"

之后我就能够从 dbeaver 成功连接到 mysql RDS。


-1
投票

今天在客户使用 Heidi Sql 客户端时遇到此错误。

我们只是在 ec2 上使用“mysqlroot”来与有问题的 rds 进行连接,然后发出“flushhosts;” cmd。

© www.soinside.com 2019 - 2024. All rights reserved.