Access denied for user ‘y’@‘localhost’ (using password: YES)解决方法
遇见问题
我是刚好在看数据库DCL语句对于用户操作及授权,在修改用户密码时遇到的问题。
当我用命令行窗口验证修改密码是否成功时,就出现了 Access denied for user ‘y’@‘localhost’ (using password: YES) 【用户’y’@'localhost’被拒绝访问(使用密码:YES)】
注:NO表示没有输入密码,YES表示密码输入正确
显而易见,我的用户名与密码的输入都是正确的。
当然,出现该问题有可能也是密码输错了。
解决问题
%: 通配符,表示可以在任意主机使用用户登录数据库。
Access denied 就是拒绝访问。根据提示信息,我刚开始还以为是不是要将“%”改为“localhost”,然后并没有什么luan用。最后发现可以将 skip-grant-tables
添加到安装目录下的my.ini配置文件末尾就能很简单地解决该问题。
注意,添加完后要刷新一下用户状态 flush privileges;
这时就可以登录成功了。
其他疑问
skip-grant-tables
其实就是跳过权限验证。
但是,贼奇怪哈,这一跳,什么都可以不输入(包括用户名、密码)就能登录了,为了保证安全性,再把配置文件最后一行给注释了。
!!!不知道为什么,又不能随意登录了。我估计和flush privileges;
有关。