一、部署环境
操作系统: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就必须输入密码才可以登录了。
注:
以上为本人实际操作中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!