如何修复MariaDB插件’unix_socket’未加载错误

错误“ Plugin’unix_socket’未加载”在Ubuntu 15.04 / 15.10 / 16.04和任何衍生发行版(例如Linux Mint 18)上很常见。

什么是Unix_Socket插件?

MariaDB 5.2.0首先支持Unix_Socket身份验证插件,该插件允许用户使用OS凭据通过Unix套接字连接到MariaDB。 默认情况下未安装此插件。

登录到MariaDB监视器。

mysql -u root -p

然后使用以下命令安装Unix_Socket插件:

MariaDB [(none)]>  install plugin unix_socket soname 'auth_socket';

我的Ubuntu系统有一个名为 linuxbabe,所以我创建了一个MariaDB用户 linuxbabe 通过unix_socket插件标识。

MariaDB [(none)]> create user linuxbabe identified via unix_socket;

退出MariaDB监视器。

MariaDB [(none)]> quit

现在,我可以以用户linuxbabe的身份登录MariaDB监视器,而无需输入密码,因为我已经以linuxbabe的身份登录Ubuntu系统。

这就是Unix_Socket身份验证插件的工作方式。

修复未加载插件“ unix_socket”的错误

Unix_Socket身份验证插件仅在Linux OS和MariaDB具有相同用户名的用户帐户时有效。

您的Linux操作系统具有root用户。 MariaDB也有一个root用户。 因此,有时,当您尝试以root用户身份登录MariaDB监视器时,MariaDB可能会通过Unix_Socket插件对您进行身份验证,但默认情况下未安装此插件。 所以你看 Plugin 'unix_socket' is not loaded 错误。

另一个身份验证插件是 mysql_native_password。 MariaDB使用此插件来验证使用以下命令创建的用户:

create user [email protected] identified by password 'secret_password';

要解决以上错误,我们可以告诉MariaDB使用 mysql_native_password 用于验证root用户的插件。

首先停止MariaDB。 如果您已经从Ubuntu存储库安装了MariaDB,请使用此命令将其停止。

sudo systemctl stop mysql

如果已从MariaDB存储库安装了MariaDB,请使用以下命令将其停止。

sudo systemctl stop mariadb

然后使用以下命令启动MariaDB --skip-grant-tables 选项绕过用户身份验证。

sudo mysqld_safe --skip-grant-tables &

接下来,以root用户身份登录MariaDB监视器。

mysql -u root

输入以下SQL语句以检查哪个身份验证插件用于root。

MariaDB [(none)]> select Host,User,plugin from mysql.user where User="root";

插件“ unix_socket”未加载

您可能会看到它正在使用unix_socket插件。 要将其更改为mysql_native_password插件,请执行以下命令:

MariaDB [(none)]> update mysql.user set plugin='mysql_native_password';

如果您忘记了MariaDB超级用户密码,也可以使用以下命令立即更改超级用户密码:

MariaDB [(none)]> update mysql.user set password=PASSWORD("newpassword") where User="root";

退出MariaDB监视器。

flush privileges;
quit;

停止mysqld_safe

sudo kill -9 $(pgrep mysql)

再次启动MariaDB。

sudo systemctl start mysql     or   sudo systemctl start mariadb

现在您可以使用普通密码登录了。

mysql -u root -p

我希望本文能帮助您修复“ unix_socket”插件未加载错误。 总是欢迎提出意见,问题或建议。 如果您发现这篇文章有用, 请在社交媒体上与您的朋友分享! 请继续关注更多教程。

Sidebar