这是代码
<?php
$con = mysqli_connect("******.com","user","pass","db");
echo mysqli_connect_error();
?>
然后我回来(通过回声)
由于许多连接错误,主机'*****************'被阻止;使用'mysqladmin flush-hosts'
解锁
以下是错误日志文件
中的文字[04-Nov-2014 21:30:22 UTC] PHP警告:mysqli_connect():( HY000 / 1129):主持人'******************* '由于许多连接错误而被阻止;在第2行的/home/******/public_html/test.php中使用'mysqladmin flush-hosts'取消阻止
和
[04-Nov-2014 21:18:30 UTC] PHP警告:mysqli_connect():( 28000/1045):拒绝访问用户“用户”@'************在第2行的/home/*******/public_html/test.php中使用******(使用密码:是)
怎么了?
我该怎么办?
答案 0 :(得分:0)
您的IP已被阻止,因为根据错误,您尝试登录MySQL服务器的次数太多而没有正确的用户名/密码:
主持人&#39; *****************&#39;由于许多连接错误而被阻止;使用&#39; mysqladmin flush-hosts&#39;
取消阻止
要修复,请登录MySQL服务器控制台并执行FLUSH HOSTS
命令。
如果这是在共享主机上,则删除并重新创建数据库将起作用。根据我自己的经验,许多网络主机倾向于说 它是你的MySQL数据库,这是你的问题。 除非你想等待长时间让您的主机解锁您的IP,我建议导出数据库中的所有数据并删除数据库,重新创建数据库并从您导出的文件中导入数据。
From the official documentation:
max_connect_errors系统变量的值决定了如何 允许许多连续中断的连接请求。 (看到 第5.1.4节“服务器系统变量”。)max_connect_errors之后 没有成功连接的失败请求,mysqld假设 有些事情是错的(例如,有人试图闯入), 并阻止主机进一步连接,直到您发出FLUSH HOSTS语句或执行mysqladmin flush-hosts命令。
默认情况下,mysqld会在10次连接错误后阻止主机。您可以 通过在服务器启动时设置max_connect_errors来调整该值:
壳&GT; mysqld_safe --max_connect_errors = 10000&amp;价值也可以 在运行时设置:
的MySQL&GT; SET GLOBAL max_connect_errors = 10000;如果你得到主持人 &#39; HOST_NAME&#39;是的,您应该阻止给定主机的错误消息 首先验证TCP / IP连接没有任何问题 主持人。如果您遇到网络问题,那对您没有好处 增加max_connect_errors变量的值。