连接到mysql时出错

时间:2014-11-04 21:37:03

标签: php mysql

这是代码

<?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中使用******(使用密码:是)

怎么了?
我该怎么办?

1 个答案:

答案 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变量的值。