Я схожу с ума, чтобы решить эту проблему. У меня есть установка mysql (на машине db.example.org
), который не разрешает данное имя хоста. Я дал привилегии, используя имена хостов, т.е.
GRANT USAGE ON *.* TO 'user'@'host1.example.org' IDENTIFIED BY PASSWORD 'secret'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX ON `my_database`.* TO 'user'@'host1.example.org'
Однако когда я пытаюсь подключиться, используя mysql -u user -p -h db.example.org
Я получаю
ERROR 1045 (28000): Access denied for user 'user'@'192.168.11.244' (using password: YES)
Я уже проверил правильность разрешения имен в системе DNS:
$ dig -x 192.168.11.244
;; ANSWER SECTION:
244.11.168.192.in-addr.arpa. 68900 IN PTR host1.example.org.
Я также проверил skip-name-resolve
параметр в переменных mysql на самом деле, если я могу получить доступ с другого компьютера в той же подсети, используя привилегии имени хоста.
Единственная разница в том, что host1.example.org
и db.example.org
укажите один и тот же IP-адрес на одном компьютере, т.е. оба db.example.org
и host1.example.org
есть ip 192.168.11.244. Таким образом, все приложения, использующие эту базу данных, могут использовать имя db.example.org
и мы можем переместить данные на другие хосты (при необходимости), просто изменив запись DNS, оставив код приложения неизменным.
Что мне делать, чтобы решить эту проблему или хотя бы понять, что происходит?
Просто чтобы убедиться, пробовали ли вы бежать ПРИВИЛЕГИИ СМЫВАНИЯ ?
Через пару дней проблема исчезла ... Я попробовал еще раз, и теперь все работает. Возможно, это был временный сбой DNS или проблема с кешем (я выполнял команду flush hosts несколько раз). В любом случае проблема решена.