2014-11-04 5 views
2

здесь кодошибка при подключении к MySQL

<?php 
    $con = mysqli_connect("******.com","user","pass","db"); 
    echo mysqli_connect_error(); 
?> 

и я вернусь (эхом)

Host '*****************' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

и вот текст в файле журнала ошибки

[04-Nov-2014 21:30:22 UTC] PHP Warning: mysqli_connect(): (HY000/1129): Host '*******************' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' in /home/******/public_html/test.php on line 2

и

[04-Nov-2014 21:18:30 UTC] PHP Warning: mysqli_connect(): (28000/1045): Access denied for user 'user'@'******************' (using password: YES) in /home/*******/public_html/test.php on line 2

Что случилось?
Что делать?

ответ

0

Ваш IP заблокирован, потому что вы пытались выполнить вход на сервер MySQL слишком много раз без правильного имени пользователя/пароля, в соответствии с ошибкой:

Host '*****************' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

Чтобы исправить, войдите в свой сервер MySQL консоли и выполните команду FLUSH HOSTS.

Если это на совместном хостинге, удаляется и воссоздается база данных. По моему собственному опыту многие веб-хосты, как правило, говорят это ваша база данных MySQL, это ваша проблема. Если вы хотите подождать время для вашего хоста, чтобы разблокировать ваш IP-адрес, я бы посоветовал экспортировать все данные в базу данных и удалить базу данных, воссоздать базу данных и импортировать ваши данные из экспортируемого вами файла.

From the official documentation:

The value of the max_connect_errors system variable determines how many successive interrupted connection requests are permitted. (See Section 5.1.4, “Server System Variables”.) After max_connect_errors failed requests without a successful connection, mysqld assumes that something is wrong (for example, that someone is trying to break in), and blocks the host from further connections until you issue a FLUSH HOSTS statement or execute a mysqladmin flush-hosts command.

By default, mysqld blocks a host after 10 connection errors. You can adjust the value by setting max_connect_errors at server startup:

shell> mysqld_safe --max_connect_errors=10000 & The value can also be set at runtime:

mysql> SET GLOBAL max_connect_errors=10000; If you get the Host 'host_name' is blocked error message for a given host, you should first verify that there is nothing wrong with TCP/IP connections from that host. If you are having network problems, it does you no good to increase the value of the max_connect_errors variable.

+0

Проблема заключается в основном отказ сообщение для соединения MySQL. Сервер не может найти БД MySQL и возвращает эту ошибку. Для вас проблема заключается в том, что хост не может решить имя моего сервера (myservername.com), и он не может подключиться. Одним из решений является изменение имени сервера на «localhost» и использование метода подключения для подключения. – DesignerMind

+0

@DesignerMind Этот вопрос был закрыт как «дубликат» вскоре после того, как я отправил свой ответ, я не поднял/понизил/не поставил вопрос. Это сообщение об ошибке *** не относится к «серверу не найден» ***, это означает, что переменная 'max_connect_errors' для сервера MySQL была превышена - это функция безопасности. – cybermonkey

Смежные вопросы