使用IP时,MySQL用户权限无效

时间:2014-12-14 15:26:42

标签: mysql ubuntu

我有当前的设置:

SVR01: Ubuntu Trusty,与Xen

VM01: IP:192.168.0.10 Ubuntu Trusty,Apache2 + php模块

VM02: IP:192.168.0.11 Ubuntu Trusty,带有mysql服务器

当我尝试从VM01(apache服务器)连接到VM02上的mysql时,我得到了"拒绝访问' NewUser' @' 192.168.0.10' (使用密码:是)"错误。

我使用以下方式创建了用户:

CREATE USER 'NewUser'@'192.168.0.10' IDENTIFIED BY 'password';
GRANT EXECUTE ON mydb.* TO 'NewUSer'@'192.168.0.10';

但是,如果我使用主机通配符创建用户,它将起作用:

CREATE USER 'NewUser'@'%' IDENTIFIED BY 'password';
GRANT EXECUTE ON mydb.* TO 'NewUSer'@'%';

当我指定主机ip时,有谁知道为什么它不起作用?

PS。尝试通过Mysql客户端或通过PHP PDO连接时,我收到错误。

1 个答案:

答案 0 :(得分:5)

跟进问题:

  • 如果您使用192.168.0。%通配符主机掩码创建用户,该授权是否有效?
  • 从mysql.user运行select user,host,password,其中user ='NewUser',以确保没有其他用户@主机你不知道可能会被拿起来?
  • 错误日志中的Access拒绝邮件是否确认失败的连接尝试实际上来自您认为的IP?如果您在具有多个网络接口的系统中设置了多个路由,或者混合使用某些VPN路由,则可能会出现类似这样的奇怪现象。
  • 尝试连接到VM02时,您使用的是文字IP地址还是主机名?如果后者确定这是解析为您认为是来自VM01的IP(您可以使用ping或命令行中的主机命令进行验证)
  • 运行“show variables like'init_connect';”在您创建用户的root帐户上。如果该值不为空,则需要确保执行该值所需的权限帐户。