Ubuntu中关于IP和计算机名的问题

Ubuntu中关于IP和计算机名的问题

我无法连接到 mysql 数据库,因为它总是将 192.168.1.101 更改为 ubuntu.local。

$ mysql -uroot -padmin1234 -h192.168.1.101
错误 1045(28000):拒绝用户“root”@“ubuntu.local”访问(使用密码:是)

我该如何解决这个问题。

文件:本机的 /etc/hosts

127.0.0.1 本地主机
127.0.1.1 ubuntu.ubuntu-域 ubuntu

# 对于支持 IPv6 的主机,以下几行是理想的
::1 本地主机 ip6-本地主机 ip6-环回
fe00::0 ip6-本地网络
ff00::0 ip6-mcast前缀
ff02::1 ip6-所有节点
ff02::2 ip6-所有路由器
ff02::3 ip6-所有主机

我不知道“root'@'ubuntu.local”是从哪里来的。

答案1

“ubuntu.local” 可能来自 MySQL 服务器,而不是您尝试连接的客户端。检查该机器上的 /etc/hosts 是否有与 192.168.1.102(或您的客户端机器的 IP)相关的条目。它也可能(不太可能)从某处设置的反向 DNS(可能是您的路由器?)获取该名称。

拒绝访问语句只是 MySQL 拒绝主机/用户名/密码。尝试

select * from mysql.users where user = 'root';

并查看是否有任何返回内容列出客户端计算机的 IP 地址或主机名。确保密码相同(root@localhost 的密码可以与[电子邮件保护])。

答案2

localhost代替 192.168.1.101使用

事实上,为什么要特别指定它呢?

您可能尝试以 root 身份登录 mysql,但错误消息表明您也以 root 身份登录 Ubuntu。这没有必要。这两个“root”用户完全不同。

以普通用户身份登录 Ubuntu。然后以 root 身份登录 mysql(这是 mysql root 用户的正确密码吗?安装 mysql 时是否指定了 mysql root 密码?如果没有,那么可能没有密码)。

然后为普通Unbuntu用户分配访问mysql的权限(GRANT)。

答案3

https://help.ubuntu.com/community/ApacheMySQLPHP

如果您尝试从另一台机器(非本地)访问 mysql,此链接包含在 ubuntu 上配置 mysql 所需的所有信息。

谢谢,
马赫什·维拉加。

答案4

错误中的解决正在由运行 MySQLd 的远程服务器执行。

如果您GRANT指定了主机名,则正向和反向 DNS 需要匹配。但似乎无论如何它们都不匹配。

检查您的GRANT并检查 DNS。

相关内容