如何修复MariaDBPlugin \'unix_socket\' is not loaded错误

・3 分钟阅读

经常会出现"Plugin'unix_socket'is not loaded"的错误。本教程说明如何修复它。

Unix_Socket插件是什么?

MariaDB 5.2.0开始支持Unix_Socket身份验证插件,该插件允许用户通过Unix套接字连接到MariaDB。

登录到MariaDB。

mysql -u root -p

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

MariaDB [(none)]> install plugin unix_socket soname 'auth_socket';
MariaDB [(none)]> create user linuxbabe identified via unix_socket;
MariaDB [(none)]> quit

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

这就是Unix_Socket认证插件的工作原理。

修复Plugin'unix_socket'is not loaded 错误

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

Plugin 'unix_socket' is not loaded

另一个验证插件是mysql_native_password,MariaDB使用此插件验证使用此命令创建的用户:

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

要修复上述错误,我们可以告诉MariaDB使用mysql_native_password插件来验证root用户。

sudo systemctl stop mysql
sudo systemctl stop mariadb

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

sudo mysqld_safe --skip-grant-tables &

下一步,以MariaDB身份登录root。

mysql -u root

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

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

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

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

如果忘记了MariaDB root用户密码,还可以使用以下命令立即更改root密码:

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

退出MariaDB。

flush privileges;
quit;

停止mysqld_safe

sudo kill -9 $(pgrep mysql)

再次启动。

sudo systemctl start mysql or sudo systemctl start mariadb

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

mysql -u root -p

希望本文能够帮助你修复Plugin'unix_socket'is not loaded错误。

Huangzhongbang profile image