當我們在連接 MySQL 數(shù)據(jù)庫時,會遇到一個錯誤提示“Access denied for user 'user'@'localhost' (using password: YES)”或者“ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)”。
這個錯誤的原因是數(shù)據(jù)庫中沒有這個用戶或密碼錯誤。我們可以通過以下步驟查看是否存在這個用戶:
SELECT User FROM mysql.user;
如果該查詢未返回任何值,則表示不存在該用戶。此時需要創(chuàng)建一個新用戶:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
其中,'user' 是用戶名,'localhost' 是主機名,'password' 是密碼。這里我們使用的是本地主機,如果是其他主機需要使用相應的主機名。
如果該查詢返回了該用戶,則很可能是密碼錯誤,我們可以通過以下步驟更改密碼:
SET PASSWORD FOR 'user'@'localhost' = PASSWORD('new_password');
其中,'user' 是用戶名,'localhost' 是主機名,'new_password' 是新密碼。
當我們創(chuàng)建新用戶或更改密碼時,可能會遇到“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements”錯誤,這是因為密碼不符合密碼策略要求。此時,我們需要更改密碼策略,可以通過以下步驟完成:
SHOW VARIABLES LIKE 'validate_password%'; SET GLOBAL validate_password.policy=LOW;
其中,第一個命令查詢密碼策略的具體配置,第二個命令將密碼策略設置為 LOW,即密碼最短長度為 8 個字符。