mysql - 错误 1045 (28000) mysql 用户@some_name

标签 mysql

是的,我知道,又出现这个错误...

区别在于错误的结尾部分:user@some_name

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

顺便说一句,在我工作的地方使用通配符是 Not Acceptable ,我们不允许使用通配符,所以我不能用它作为答案。

我查看了我的服务器,some_name 不存在于/etc/hosts 或/etc/sysconfig/network 中,也不是由“主机名”CLI 执行返回的。我需要确定它从哪里获得这个名称以及为什么 mysql 不使用该 IP(并修复它),以便我可以更新 mysql.users 表以反射(reflect) user@ip 以便可以建立连接。

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

服务器 RHEL 6.5 MySQL服务器5.1.73

谢谢! SK

最佳答案

当MySQL客户端连接到MySQL服务器时,我不知道MySQL服务器正在使用/etc/host文件进行反向查找。在该文件中,我列出了一个别名 'some_name' 'ip' 行项目(用于 ping 等的快捷方式)。因此,MySQL Server 前往 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'条目进行授权。

关于mysql - 错误 1045 (28000) mysql 用户@some_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414500/

相关文章:

mysql - 从 mysql 文本字段中提取数据并按它排序 - 可能吗?

php - Ajax 只在第一次工作

Mysql查询返回一个非常大的文件

php - MysqliDb - 检查连接是否关闭

Mysql 选择一些随机行并加上一个特定行

mysql - SQL通过许多相关的外键进行选择

php - 同时提交多个查询mysql两次插入相同的id

mysql - 搜索多个tables.column以获取特定值

mysql - 如何选择一行内的标准偏差? (在 SQL 中 - 或 R :)

php - MySQLi 和 mysql_real_escape_string() 错误