Ubuntu 系统修改root密码后,无需密码亦可登录

问题描述: Ubuntu 系统修改root密码后,无需密码亦可登录
操作系统: Ubuntu
MySQL版本:5.7
MySQL 账号 root@localhost 无法修改密码,即使修改了密码, mysql.user 中authentication_string 列也为空。
并且登录时候空密码,或者任意输入密码也能登录。

问题排查:
(1)排查一:
skip-grant-tables 参数没有使用。

(2)排查二:
SELECT `host`,`user`,`plugin` FROM mysql.user WHERE `user`=root AND `host`=localhost;
返回结果为: auth_socket 

结果分析:
关于密码验证插件 auth_socket:
1.这种验证方式不要求输入密码,即使输入了密码也不验证。
2.只能用 UNIX 的 socket 方式登陆,只能本地登陆。
3.操作系统的用户和 MySQL 数据库的用户名必须一致,例如你要登陆 MySQL 的 root 用户,必须用操作系统的 root 用户登陆。

解决办法:
需要将该值修改为 mysql.user WHERE `user`=root AND `host`=localhost 中的 `plugin` 列修改为:  mysql_native_password 

执行语句:
use mysql;
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY Jimstars;
flush privileges;


 

Ubuntu 系统修改root密码后,无需密码亦可登录

上一篇:使用sed命令给二进制文件添加文件头


下一篇:linux安装yum