一、部署环境
操作系统:centos7.9
数据库:mariadb-10.4.11
二、问题展示
刚安装完mairadb,发现不输入密码也能正常登录。(没有输入密码)

三、探索解决
1、定义问题肯定是user表的问题,然后进入到user表,发现有两个空用户,然后果断删除两个空账号。

2、删除之后,问题依然没有解决,然后百度发现,解决办法千篇一律。
? 第一种就是要改mysql.user表里的plugin字段,从unix_socket ?改为?mysql_native_password ,但是发现在mariadb10.4.11这里是正常的。

?3、百度上的第二种解决办法是要改sql_saft_updates。
但是发现在mariadb10.4.11中是OFF的。

?
?四、真正原因
1、在mariadb10.4.11中mysql.user ?表目前已不起作用了,真正的表是?mysql.global_priv ?表,查询后我们发现root用户是unix_socker 类型,这就是为啥总能直接登陆的问题。

?2、解决办法:
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("你的密码");
?然后退出重新登录,现在mariadb就必须输入密码才可以登录了。

?
注:?
以上为本人实际操作中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!
|