初學者常遇:以為用 root 登錄,實際進入匿名用戶;密碼輸入錯誤卻以為是權限問題。本文還原兩大經典坑。
mysql> create database aa; ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'aa'
user='' 表示**匿名用戶**(無用戶名登錄)。雖然你輸入了 mysql -u root,但若未指定 -p 且無密碼,MySQL 可能匹配到匿名用戶。
正確登錄:
mysql --user=root -p Enter password: # 輸入 root 密碼(默認空直接 Enter) mysql> create database dbb; -- 成功
mysql --user=root -p Enter password: ****** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
using password: YES 明確提示**密碼錯誤**而非權限不足。重置密碼或確認密碼後重試。
mysql -u root -p 或 mysql --user=root -p。user='xxx':空串 = 匿名用戶,非預期用戶。using password: YES = 密碼錯誤;NO = 未提供密碼。