关于 ERROR 1045 (28000): Access denied for user ‘zhang‘@‘localhost‘ (using password: YES/NO)的一种解决思路

grant 了一个用户 zhang 可以 select 数据库 schoolDB 的 Vjava 视图,
mysql> grant select on schoolDB.Vjava to zhang@‘192.168.231.%’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)

然后,使用创建的账号尝试登录数据库,报错
[root@localhost ~]# mysql -u zhang -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘zhang’@‘localhost’ (using password: YES)

查看原因,
mysql> select host,user from user;
±----------------------±------+
| host | user |
±----------------------±------+
| 127.0.0.1 | root |
| 192.168.231.% | root |
| 192.168.231.% | zhang |
| localhost | root |
| localhost.localdomain | root |
±----------------------±------+
5 rows in set (0.00 sec)

对比提示的错误,
错误中提到 : ‘zhang’@‘localhost’
而我们创建的是:zhang@‘192.168.231.%’

问题就出现在这里,
在登录的时候,必须给 新建用户指定 主机 host,否则,就会默认使用 ‘zhang’@‘localhost’ 登录,
但我们的数据库中没有 ‘zhang’@‘localhost’ 这个组合,就出错了。

解决办法:
[root@localhost ~]# mysql -u zhang -p -h 192.168.231.129

mysql> select user(),current_user();
±----------------------±--------------------+
| user() | current_user() |
±----------------------±--------------------+
| zhang@192.168.231.129 | zhang@192.168.231.% |
±----------------------±--------------------+
1 row in set (0.00 sec)
登录成功,

结论,错误提示,指出是用户名+host 的组合出现了问题,所以就需要使用正确的组合登录,
January the 18 2022 Tuesday
做个补充,
当提示的信息中,指明了是登录的用户出现了问题的时候,
我们就需要使用,正确的,用户名、主机名的搭配,进行登录,
而且,拿我这个案例来说,是不能使用 zhang@192.168.231.% ,也就是将用户名和主机名,二合一的方式去登录,
而必须使用,形如,mysql -u zhang -p -h 192.168.231.129,这种,主机和用户名 分别使用各自对应的参数来指定的方式去登录,

-u 指定用户名,
-h指定主机名,
要分开指定,不能二合一成,错误提示中的那种形式:zhang@192.168.231.%
这样就不会出现登录错误了。

其实,
ERROR 1045 (28000): Access denied for user ‘zhang‘@‘localhost‘ (using password: NO)
错误的解决思路也大致一样,
只是,MySQL 的初学者不熟悉造成的,多加练习,日子长了就都悟出来了,
这里的分享就是帮大家少走弯路,

January the 19th 2022 Wednesday

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值