全新安裝 MySQL 後,執行 SHOW DATABASES; 卻看不到 mysql、performance_schema 系統庫,甚至登入報錯 ERROR 1045 (28000): Access denied for user 'root'@'localhost'。這通常由三大原因導致:
data 目錄、註冊表、服務項未完全清理。my.ini,在 [mysqld] 區段新增 skip-grant-tables。net stop mysql && net start mysql。mysql -u root。USE mysql;
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;skip-grant-tables,重啟服務生效。net stop mysql。bin 目錄,執行:mysqld --console --skip-grant-tables --shared-memory
mysql -u root。mysqld 進程),啟動正式服務:net start mysql。重置密碼並正常啟動後,執行:
SHOW DATABASES; -- 應看到 mysql, performance_schema, information_schema, sys 等系統庫 SELECT User, Host FROM mysql.user; -- 確認 root@localhost 存在且 plugin 為 mysql_native_password 或 caching_sha2_password
若系統庫仍缺失,請檢查 datadir 權限、錯誤日誌 .err,或以 mysqld --initialize-insecure --console 重新初始化資料目錄(會清空現有資料)。
PASSWORD() 函數已移除,請用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';。my.ini 後務必重啟服務,否則不生效。skip-grant-tables,屬嚴重安全風險。