主机 'hostname' 由于连接错误次数过多而被阻止;使用 'mysqladmin flush-hosts' 命令解除阻止。

16
我的网站在本地的 'Wamp' 服务器上运行得完美无缺。但是,一旦我将其上传到我的网络托管服务供他人使用,就会出现以下错误:
Host 'stats.starfish.arvixe.com' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
由于我使用共享主机且权限不足,因此我无法执行“flush-hosts”命令。
我已经在网上广泛搜索,但找不到确切答案来解决我的连接错误问题。该网站运作了一段时间,但一旦有多个人开始使用它,MySQL就会阻止我的网络托管服务,因为它出现太多连接错误。
是否有任何日志我能够访问或查看,以了解是什么原因导致连接错误?

3
嗯...我曾经遇到过这个问题。看起来很多人同时使用MySQL服务器,导致错误出现。请联系您的托管提供商为您检查此问题。 - user1229931
你是否正在使用持久连接?我之前见过启用持久连接导致这种问题的情况。 - jbrahy
3个回答

3

https://dev.mysql.com/doc/refman/5.0/en/blocked-host.html

你的问题在于你一直在尝试连接,但是一直失败。共享服务器设置了保护机制,已经将你断开了连接。先关闭应用程序一段时间,解决连接问题后再重新启动。
在服务器上,你需要等待一段时间才能再次尝试连接,这个时间可能是你看不到的。因此,在一段时间内每隔15分钟尝试一次,直到你被允许连接为止...
我建议你使用备用的mysql服务器(可能是本地的),以便练习,这样你就可以避免将来出现对该主机而言的暴力攻击。在“启动服务”之前始终手动测试连接。

0

我曾经遇到同样的问题。但是我是这样解决的:

  1. 登录到您的"域名管理面板" (www.yourdomainname.com/cpanel)

  2. 进入"数据库"部分,点击"远程MySQL"选项

    enter image description here

  3. 在下一页中,在"主机(允许使用%通配符)"文本框中输入"%",然后按"添加主机"按钮

    enter image description here

  4. 现在您应该看到下面的列表中有"%",您可以随时通过按"X"按钮来删除它。

  5. 现在转到您的PHP脚本文件,并设置您的数据库主机名,不包括"http://""www"

    enter image description here

现在尝试重新连接它。希望能对您有所帮助。

请记住:
通过这样做,您允许外部 Web 服务器访问您的 MySQL 数据库,方法是将其域名添加到可以访问您网站上的数据库的主机列表中。


OP的托管方是否使用cpanel?它在那个URL下运行吗? - PeeHaa
1
你不觉得这有点不安全吗? - strangeqargo

0

如果您的网站和数据库托管在同一台服务器上,请使用“localhost”作为数据库主机。


1
这很不可能是问题所在,特别是如果MySQL服务器像问题中显示的那样响应于stats.starfish.arvixe.com - ceejayoz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接