复现问题

mariaDB 版本:10.0.36

现象

使用 mysqladmin -u root password p@ssword 修改密码之后,在命令行使用 mysql -u root -p 登录 MySQL 提示需要输入密码,但无论输入什么,均可登陆。

原因

从 5.5.7 版本中 MySQL 数据库中就开始引入 plugin 这项配置,用来进行用户密码验证,同时 mariaDB 安装的默认插件是 ‘console’ 或 ‘unix_socket’,这个插件允许你在没有密码的情况下从控制台输入可以登录,禁用密码验证。并且您无法从其他客户端连接。

解决方法

1
2
3
4
mysql -u root -p
use mysql;
select user,password,plugin from user;
update user set plugin='' where user='root';

OK!