Plugin ‘mysql_native_password’ is not loaded`
-
-
- mysql_native_password介紹
- 1. 使用默認的認證插件
- 2. 修改 my.cnf 或 my.ini 配置文件
- 3. 加載插件(如果確實沒有加載)
- 4. 重新安裝或檢查 MySQL 版本
-
遇到錯誤 ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
表示 mysql_native_password
插件在 MySQL 服務中沒有加載或不可用。這種情況通常出現在新版的 MySQL 中,尤其是從 MySQL 5.7 升級到 MySQL 8.0 時,因為 MySQL 8.0 默認使用了更安全的認證插件 caching_sha2_password
。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '含有大小寫字母、數字、特殊字符的密碼';ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
mysql_native_password介紹
使用的是基于SHA-1的密碼散列算法。
SHA-1算法已被認為不再足夠安全,存在一定的安全隱患,容易受到撞庫攻擊和其他形式的攻擊
解決這個問題,你可以嘗試以下幾種方法:
1. 使用默認的認證插件
如果沒有特別的需要使用 mysql_native_password
,建議使用 MySQL 8.0 默認的 caching_sha2_password
認證插件。對于新用戶,可以這樣創建:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Li4444555635!';
2. 修改 my.cnf 或 my.ini 配置文件
如果你確實需要使用 mysql_native_password
,嘗試在 MySQL 的配置文件(Linux 上通常是 /etc/my.cnf
或 /etc/mysql/my.cnf
,Windows 上是 my.ini
)中添加以下設置,然后重啟 MySQL 服務:
default_authentication_plugin=mysql_native_password
添加這段配置后,新創建的用戶將默認使用 mysql_native_password
認證插件。對已存在的用戶,你可能需要重新設置密碼,使更改生效:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Li4444555635!';
3. 加載插件(如果確實沒有加載)
如果你確認 MySQL 安裝包含 mysql_native_password
插件,但因某些原因它沒有加載,可以嘗試手動加載插件(這在標準安裝中很少需要):
INSTALL PLUGIN mysql_native_password SONAME 'auth_socket.so';
請注意,替換 'auth_socket.so'
為實際的插件文件名,這可能因操作系統和 MySQL 版本而異。
4. 重新安裝或檢查 MySQL 版本
如果以上步驟都無法解決問題,確保你的 MySQL 版本支持 mysql_native_password
認證插件。可能需要重新安裝或升級 MySQL。 在操作前,建議備份所有重要數據和檢查 MySQL 的兼容性信息確保版本支持你需要的特性。