我无法连接到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 localhost Ubuntu的Ubuntu.ubuntu-domain Ubuntu的127.0.1.1 #对于支持IPv6的主机,以下几行是可取的 :: 1 localhost ip6-localhost ip6-loopback fe00 :: 0 ip6-localnet ff00 :: 0 ip6-mcastprefix ff02 :: 1 ip6-allnodes ff02 :: 2 ip6-allrouters ff02 :: 3 ip6-allhosts
我不知道“root'@ubuntu.local”,它来自哪里。
“ubuntu.local”可能来自MySQL服务器机器,而不是您尝试连接的客户机。 检查该机器上的/ etc / hosts,以获取与192.168.1.102相关的条目(或者您的客户机的IP地址)。 它也可能(不太可能)从反向DNS获取这个名称(也许你的路由器?)。
访问被拒绝的声明只是MySQL拒绝主机/用户名/密码。 尝试
select * from mysql.users where user = 'root';
并查看是否有任何事情回来列出客户端机器的IP地址或主机名。 确保密码相同(root @ localhost可以使用不同于[email protected]的密码)。
使用localhost而不是192.168.1.101
实际上,为什么要指定呢?
您可能试图以root身份login到mysql,但是错误消息表明您也以root身份login到了Ubuntu。 这不是必须的。 这两个“根”用户是完全不同的。
以普通用户身份loginUbuntu。 然后以root用户身份login到mysql(是mysql root用户的正确密码吗?是否在安装mysql时分配了mysql root密码?如果没有,那么可能没有密码)。
然后为正常的Unbuntu用户分配权限(GRANT)来访问mysql。
https://help.ubuntu.com/community/ApacheMySQLPHP
如果你想从另一台机器(非本地)访问它,这个链接有你需要在ubuntu上configurationmysql的所有信息。
谢谢,
Mahesh Velaga。
错误的解决scheme是由运行MySQLd的远程服务器执行的。
如果您的GRANT指定了主机名,则正向和反向DNS需要匹配。 这似乎他们不一样。
检查你的GRANT并检查DNS。