У меня, казалось бы, прямой вызов с использованием mysqli_connect (), который завершается неудачно из-за замены хоста именем localhost.
Пример:
$username = 'foo';
$host = 'localhost';
$passwd = 'secret';
$link = mysqli_connect($host,$username, $passwd)...
Вызов mysqli_connect с помощью localhost или 127.0.0.1, когда хост возвращает что-то вроде этого:
(HY000 / 1045): доступ запрещен для пользователя 'foo'@'servername.mydomain.com'
Я могу подключиться, используя ту же учетную запись с локально установленным клиентом mysql, но разрешения пользователя действительны:
SHOW GRANTS FOR 'foo'@'localhost';
GRANT USAGE ON *.* TO 'foo'@'localhost'
Очевидно, что mysqli_connect пытается подключиться, используя DNS-имя локального компьютера вместо localhost.
Я знаю, что мог бы разрешить выдачу гранта для пользователя с хостом, явно заданным как имя машины, или разрешить со всех хостов, но ни один из этих вариантов не приемлем в этом случае. Мне нужно, чтобы он работал, используя localhost.
Связанный:
/ etc / hosts определяет localhost следующим образом:
127.0.0.1 localhost
Любая помощь приветствуется. Спасибо.