首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 安裝後缺少 mysql 與 performance_schema 庫?三大成因與 Windows 密碼重置實戰

     編輯:MySQL 綜合教學

MySQL 安裝後缺少 mysql 與 performance_schema 庫?三大成因與 Windows 密碼重置實戰

全新安裝 MySQL 後,執行 SHOW DATABASES; 卻看不到 mysql、performance_schema 系統庫,甚至登入報錯 ERROR 1045 (28000): Access denied for user 'root'@'localhost'。這通常由三大原因導致:

  1. 舊版本殘留:先前卸載未乾淨,data 目錄、註冊表、服務項未完全清理。
  2. 權限不足:非管理員身分啟動服務或執行初始化腳本。
  3. 匿名登入:未設密碼時 MySQL 允許匿名用戶登入,導致權限表未正確初始化。

Windows 環境下兩種無需舊密碼重置 root 密碼的方法

方法一:修改 my.ini + 重啟服務(標準流程)

  1. 以管理員身分開啟 my.ini,在 [mysqld] 區段新增 skip-grant-tables。
  2. 重啟 MySQL 服務:net stop mysql && net start mysql。
  3. 無密碼登入:mysql -u root。
  4. 更新密碼(MySQL 5.7+):
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
    FLUSH PRIVILEGES;
  5. 移除 skip-grant-tables,重啟服務生效。

方法二:命令列啟動 --skip-grant-tables(無需動配置檔)

  1. 停止服務:net stop mysql。
  2. 開啟 CMD(管理員),切換到 bin 目錄,執行:
    mysqld --console --skip-grant-tables --shared-memory
  3. 另開一個 CMD,無密碼登入:mysql -u root。
  4. 同步執行上述 UPDATE/FLUSH 語句。
  5. 關閉第一個 CMD 視窗(或殺掉 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 重新初始化資料目錄(會清空現有資料)。

避坑提醒

  • MySQL 8.0+ PASSWORD() 函數已移除,請用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';。
  • 修改 my.ini 後務必重啟服務,否則不生效。
  • 生產環境嚴禁長期保留 skip-grant-tables,屬嚴重安全風險。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved