问题现象

原因分析
mysql>select host,user,password from user;
这涉及到MySQL安装时的初始化用户,匿名用户以及连接验证策略等,下面进行深入的分析。
而匿名用户又是如何影响其他用户登录,进而出现28000错误的呢?
当试图连接MySQL数据库时,数据库根据提供的身份和密码决定是否接受连接请求,身份由两部分组成:用户名和客户端主机(即输入mysql命令的主机)。
user字段为空则表示可以匹配任何用户。
user为空,即任意用户,不使用密码登录localhost时,匿名用户仅对information_schema和test数据库有权限,使用其他数据库时,导致失败。
解决办法
mysql> update user set host = '%' where host = 'oracle' and user = 'root';
mysql> flush privileges;
如果在学习中有疑问或者想要了解更多DBA相关前线经验,可以在私信留言,老师会及时回复相关的疑问,也可以联系老师加入技术交流分享群,努力提升自己。
推荐阅读

文章转载自博森瑞,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




