在使用MariaDB时,会发现在修改了root密码后,即使不输入密码也能正常登录。
这是由于在MariaDB10.4.3及更高版本中,默认情况下会安装unix_socket身份验证插件,并且root用户会使用它,正是由于这个插件的原因导致,在localhost下无密码可以直接登录。
网上的解决办法千篇一律,最靠谱的就是执行以下语句修改密码:
1 |
MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("你的密码"); |
其实官方文档中都写过这个问题了,如果你不想使用unix_socket身份验证插件,那么禁用掉它不就好了。
禁用unix_socket方法一:
修改my.cnf配置文件,将unix_socket参数设置为OFF禁用,即:
1 2 |
[mariadb] unix_socket=OFF |
禁用unix_socket方法二:
作为替代方案,unix_socket选项也可以通过disable前缀配对设置为OFF,即:
1 2 |
[mariadb] disable_unix_socket |
注:如果你my.cnf中使用的是[mariadb],就在该字段下面添加即可,如果使用的是[mysqld],就在[mysqld]字段下面添加。
原文链接:MariaDB默认root无密码直接登录问题分析解决,转载请注明来源!