【问题标题】:How to unblock with mysqladmin flush hosts如何使用 mysqladmin 刷新主机解除阻塞
【发布时间】:2014-04-12 16:18:50
【问题描述】:

我经历过这里列出的类似案例,但似乎没有用。

我使用 MySQL Workbench 与托管在另一台服务器上的数据库建立连接。尝试了几次,无法连接,然后出现此错误。我很困惑我什至应该在哪里做这个冲洗。上PhpMyadmin下的SQL查询?因为当我尝试输入以下命令时,它返回为语法错误。我使用的是 Windows 操作系统,因此我也没有 shell shell 脚本来输入这些信息。我现在暂时通过 Cpanel/phpmyadmin 访问数据库。

请帮忙告诉我应该在哪里输入这些数据以及我的语法是否错误。感谢帮助。

mysqladmin flush-hosts;

or

mysqladmin -umyname -pmypassword flush-hosts;

我的错误信息如下:

无法在 192 连接到 MYSql。..* 使用用户 myName

主机 'host-92...*.as13285.net' 由于连接过多而被阻止 错误;使用 'mysqladmin flush-hosts' 解除阻止

【问题讨论】:

  • 您没有指定实际遇到的错误...
  • 您好,我已编辑并添加到我的错误消息中。 Tnks。

标签: mysql mysql-workbench


【解决方案1】:

mysqladmin 不是 SQL 语句。它是您可以在 MySQL 服务器上找到的一个小助手实用程序……而“flush-hosts”是它可以做的事情之一。 (“状态”和“关机”是我想到的其他几件事)。

您在 shell 提示符下键入该命令。

或者,从您的查询浏览器(例如 phpMyAdmin)中,您要查找的 SQL 语句就是这样的:

FLUSH HOSTS;

http://dev.mysql.com/doc/refman/5.6/en/flush.html

http://dev.mysql.com/doc/refman/5.6/en/mysqladmin.html

【讨论】:

  • FLUSH 的奇怪之处在于:如果任何连接被阻止,你如何将它发送到服务器?您需要一个单独的主机,您可以从中发送 FLUSH HOSTS。
  • 是的,没错,但是当您从服务器本身运行mysqladmin 或使用mysql 命令行客户端时,它不会看到您从工作站进入,它会看到您来自“localhost”或 127.0.0.1 或服务器的以太网 IP 地址之一,具体取决于您如何称呼它,使用 --host ip.add.re.ss 或通常为“localhost”,如果您未指定,至少在 unix 上。
  • MySQL 服务器实际上并没有 max_connections,只是在这种情况下多出了一个。详情请见link
  • 请参阅MySQL 8.0 Reference Manual的以下注释@ FLUSH HOSTS 自 MySQL 8.0.23 起已弃用;期望它在未来的 MySQL 版本中被删除。相反,截断 Performance Schema host_cache 表:TRUNCATE TABLE performance_schema.host_cache; TRUNCATE TABLE 操作需要表的 DROP 权限而不是 RELOAD 权限。
【解决方案2】:

你应该把它放到windows的命令行中。

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

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

对于网络登录,使用以下命令:

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";

【讨论】:

  • 这对我有用,但是:我有一个每月运行的任务,并且是唯一一个使用 mysql 的任务。每次它因此而出错时,我必须去增加最大连接数和错误值。如何永久设置而无需每月重置?
  • 嗨,我希望永久修复它。那么,我需要增加哪个计数,是max_connect_errors 还是max_connections
【解决方案3】:

您可以轻松地重新启动您的 MySql 服务。这会引发错误。

【讨论】:

  • 不可接受以除崩溃以外的任何原因重新启动服务。我什至会说,即使是配置更改也不需要重新启动。最多重新加载(非常不同)
  • 可能不建议这样做,但它仍然是一个选项,所以感谢分享
  • 它还会清除缓存、安装待处理的补丁等,所以要小心
猜你喜欢
  • 2013-04-19
  • 2023-03-12
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
相关资源
最近更新 更多