我遇到数据库服务器故障,表示由于许多连接错误,主机被阻止。它要求我使用“mysqladminlush-hosts”解锁
我应该如何以及在哪里运行此命令到我们的 amazon rds 数据库服务器?
谢谢你
对于普通 MySQL,只需以“root”管理超级用户身份连接,然后发出命令:
FLUSH HOSTS
即使在连接太多的情况下,MySQL 也应该保留一个连接,以便超级用户可以连接。
无论如何,
mysqladmin
客户端通常都会以root身份连接并发出上述SQL。
登录到您拥有的任何其他 EC2 实例,该实例有权访问相关 RDS 实例并且已安装并运行 mysqladmin
mysqladmin -h <RDS ENDPOINT URL> -P 3306 -u <USER> -p flush-hosts
系统将提示您输入密码
当 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 实例可能会更快。
我通过从 AWS 管理控制台重新启动 RDS 实例修复了此错误。 HTH
[编辑:哈哈反对票]
在 Amazon RDS 上
FLUSH HOSTS;
可以从默认用户(RDS 信息中的“主用户名”)执行,这会有所帮助。
由于主机被阻止。尝试从其他主机连接它并执行 mysqladminlush-hosts 命令。
mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
您必须通过安装了 mysql 的计算机连接您的 RDS 我使用了一台使用 SSH 的托管 VPS
我登录我的 VPS 后(我使用了 putty),这很简单,在提示符中我输入了以下命令:
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
您可以在RDS Admin上重新启动数据库。
您可以使用以下命令刷新主机本地 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";
我遇到了类似的问题,在使用本地 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。
今天在客户使用 Heidi Sql 客户端时遇到此错误。
我们只是在 ec2 上使用“mysqlroot”来与有问题的 rds 进行连接,然后发出“flushhosts;” cmd。