我尝试从域授予用户数据库的数据库,但失败了。只有域名的IP有效。 (example.com拥有IP 1.1.1.1)
例如:
GRANT super ON *.* TO 'user'@'1.1.1.1' IDENTIFIED BY 'password';
以上工作正常。我可以远程访问数据库。
GRANT super ON *.* TO 'user'@'example.com' IDENTIFIED BY 'password';
这失败了!
当我尝试使用PHP脚本从example.com连接到database.com时,它说:
mysql_connect('database.com', 'user', 'password');
警告:mysql_connect()[function.mysql-connect]:拒绝访问 用户'user'@'1.1.1.1'(使用密码:是)
任何想法为什么在域'user'@'example.com'上为用户提供权限都不起作用?
答案 0 :(得分:1)
根据我的理解,您的服务器管理员已限制为主机名,您可以检查服务器配置文件(my.cnf)是否更新了“skip-name-resolve”。
即使您应该在应用程序中使用IP而不是名称进行调用,但如果仍然想要这样做,请在配置文件中注释“skip-name-resolve”。