ERROR 1045(28000)mysql user @ some_name

时间:2014-08-20 21:11:05

标签: mysql

是的,我知道,这个错误又一次......

不同之处在于错误的结尾部分:user @ some_name

SO和Google上的所有点击都是针对用户@ hostname或user @ localhost或user @ ip。客户端上的此MySQL错误将返回 some_name 。如果我在mysql.user表中将用户从user @ ip更新为user @%,则从客户端到服务器的连接成功。这表明没有防火墙,密码或其他问题,它只是一个MySQL配置问题。所以我需要MySQL使用IP而不是这个' some_name'价值(我真的很想知道它的来源)。

作为旁注,在我工作的地方使用通配符是不可接受的,我们不允许使用通配符,因此我不能将其作为答案。

我环顾了我的服务器,/ etc / hosts或/ etc / sysconfig / network中不存在 some_name ,也不是由'主机名' CLI执行。我需要确定它有这个名称的位置以及为什么mysql没有使用IP(并修复它)以便我可以更新mysql.users表以反映用户@ ip以便可以建立连接。

客户端设置: RHEL 6.5 MySQL客户端5.1.73

服务器 RHEL 6.5 MySQL服务器5.1.73

谢谢! SK

1 个答案:

答案 0 :(得分:1)

当MySQL客户端连接到MySQL服务器时,我不知道MySQL服务器正在使用/ etc / host文件进行反向查找。在该文件中,我列出了别名'some_name''ip'行项目(用于ping等的快捷方式)。因此,MySQL服务器转到mysql.user表并查找'username'@'some_name',它没有找到它,因此抛出错误: ERROR 1045(28000)mysql用户@ some_name 即可。 mysql.user表只有'username'@'client_ip'的条目。

为了缓解这个问题,我使用/etc/my.cnf配置了MySQL服务器,在mysqld下添加一行不使用反向查找:

[mysqld]
skip-name-resolve

重启MySQL服务器后,客户端连接正常工作,因为服务器现在使用'username @ client_ip'条目进行授权。