在進(jìn)行mysql管理時(shí),我們經(jīng)常需要?jiǎng)?chuàng)建新的用戶來(lái)授予相應(yīng)的權(quán)限,但在創(chuàng)建用戶后有時(shí)會(huì)發(fā)現(xiàn)用戶無(wú)法登錄,這很有可能是因?yàn)槊艽a設(shè)置不正確。
首先,我們需確定密碼是否正確,可以使用以下命令重置密碼:
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='username'; FLUSH PRIVILEGES;
其中username需要替換成你創(chuàng)建的用戶名,new_password為你所設(shè)置的新密碼。
如果重置密碼后仍無(wú)法登錄,那就需要檢查是否開(kāi)啟了密碼驗(yàn)證插件。在mysql中,有許多插件用于對(duì)密碼進(jìn)行加密和驗(yàn)證,常見(jiàn)的有mysql_native_password、sha256_password、caching_sha2_password等。
可以通過(guò)以下命令查看當(dāng)前mysql實(shí)例所使用的密碼驗(yàn)證插件:
SHOW VARIABLES LIKE 'validate_password%';
如果發(fā)現(xiàn)validate_password_plugin為ON狀態(tài),則說(shuō)明開(kāi)啟了密碼驗(yàn)證插件。在此情況下,你需要設(shè)置一個(gè)強(qiáng)密碼,滿足復(fù)雜度要求,才能通過(guò)驗(yàn)證。具體設(shè)置方法如下:
SET GLOBAL validate_password.policy=LOW; ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'new_password'; FLUSH PRIVILEGES;
這里需要將username和new_password分別替換成你創(chuàng)建的用戶名和新密碼。
如果想不開(kāi)啟密碼驗(yàn)證插件,可以使用以下命令關(guān)閉:
SET GLOBAL validate_password.policy=LOW;
除此之外,還需要檢查新用戶是否被授予了正確的權(quán)限,可以使用以下命令查看:
SHOW GRANTS FOR 'username'@'%';
如果發(fā)現(xiàn)缺少需要的權(quán)限,可以使用GRANT命令進(jìn)行授權(quán)。
以上就是關(guān)于mysql創(chuàng)建用戶后無(wú)法登錄密碼的解決方法,希望對(duì)您有所幫助。