Mysql在检查权限时无法parsing主机名

我疯了解决这个问题。 我有一个MySQL安装(在机器db.example.org ),它不parsing给定的主机名。 我使用主机名,即

 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系统中检查了正确的名称parsing:

 $ dig -x 192.168.11.244 ;; ANSWER SECTION: 244.11.168.192.in-addr.arpa. 68900 IN PTR host1.example.org. 

我也检查了mysqlvariables中的skip-name-resolve选项,实际上如果我可以使用主机名权限从同一子网上的另一台机器访问。

唯一的区别是host1.example.orgdb.example.org在同一台计算机上指向相同的ip,即db.example.orghost1.example.org都有ip 192.168.11.244。 通过这种方式,所有使用该数据库的应用程序都可以使用名称db.example.org ,只需更改dnslogging,我们就可以在其他主机上移动数据(如果需要),而不改变应用程序代码。

我应该怎么做才能解决这个问题,或者至less了解发生了什么?

只是为了确定,你有没有试过运行FLUSH PRIVILEGES

几天后,问题消失了…我再次尝试,现在它工作。 也许这是一个临时的DNS故障或caching问题(我多次执行flush hosts命令)。 无论如何,问题解决了。