MySQL创建特权用户登录报1045访问被拒绝问题咨询
问题解答
创建用户对应的密码
你执行的创建语句中identified by 'APP'字段明确指定了该用户的密码为APP。
登录报1045访问拒绝的原因及对应解决方法
- 权限未刷新:执行完授权语句后未执行权限刷新操作就直接退出,新创建的用户权限未同步到MySQL内存权限表,会导致登录被拦截。先用管理员账号(比如root)登录MySQL,执行
flush privileges;刷新权限后再重试登录即可。 - 本地匿名用户优先级干扰:MySQL默认初始化会生成host为localhost、用户名为空的匿名账号,MySQL的账号匹配规则是优先匹配host精度更高的条目,匿名账号和你创建的APP账号host都是localhost,匿名账号会被优先匹配,此时你输入APP账号的密码自然无法通过匿名账号的密码校验。解决方法是用管理员账号登录后执行以下语句清理匿名用户再重试:
DELETE FROM mysql.user WHERE user = ''; FLUSH PRIVILEGES;
- 输入内容不符合规则:检查密码输入时的大小写状态、输入法全半角状态,密码
APP为全大写半角字符,输入小写、全角字符都会被判定为密码错误。 - 账号记录异常:可以先用管理员账号登录后执行
SELECT user,host,authentication_string FROM mysql.user WHERE user = 'APP';,确认确实存在'APP'@'localhost'的账号记录,排除创建语句执行失败、用户名大小写被自动转换等异常情况。
内容的提问来源于stack exchange,提问作者Striggy Burger
相关产品推荐
相关产品推荐

