51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

MariaDB默认root无密码直接登录问题分析解决

在使用MariaDB时,会发现在修改了root密码后,即使不输入密码也能正常登录。

这是由于在MariaDB10.4.3及更高版本中,默认情况下会安装unix_socket身份验证插件,并且root用户会使用它,正是由于这个插件的原因导致,在localhost下无密码可以直接登录。

网上的解决办法千篇一律,最靠谱的就是执行以下语句修改密码:
MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("你的密码");

|---|-------------------------------------------------------------------------------------------------------------| | 1 | MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("你的密码"); |

其实官方文档中都写过这个问题了,如果你不想使用unix_socket身份验证插件,那么禁用掉它不就好了。

禁用unix_socket方法一:

修改my.cnf配置文件,将unix_socket参数设置为OFF禁用,即:
[mariadb] unix_socket=OFF

|-----|-----------------------------| | 1 2 | [mariadb] unix_socket=OFF |

禁用unix_socket方法二:

作为替代方案,unix_socket选项也可以通过disable前缀配对设置为OFF,即:
[mariadb] disable_unix_socket

|-----|---------------------------------| | 1 2 | [mariadb] disable_unix_socket |

注:如果你my.cnf中使用的是[mariadb],就在该字段下面添加即可,如果使用的是[mysqld],就在[mysqld]字段下面添加。

赞(8)
未经允许不得转载:工具盒子 » MariaDB默认root无密码直接登录问题分析解决