如何修復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