首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL ERROR 1577 系統表損壞修復:mysql_fix_privilege_tables 實戰指南

     編輯:MySQL 資料庫相關知識

錯誤現象

ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start

升級 MySQL 至 5.1.31 後,Navicat 操作報錯。原因:**系統表結構未隨版本升級**,Event Scheduler 相關表缺失字段/索引。

修復腳本原理

MySQL 發布包含 mysql_fix_privilege_tables.sql,執行內容:

  • ALTER TABLE `mysql`.`user` / `db` / `tables_priv` ... 添加新權限列(如 Event_priv, Trigger_priv)。
  • CREATE TABLE `mysql`.`event` / `proc` / `ndb_binlog_index` ... 新增系統表。
  • UPDATE `mysql`.`user` SET ... 兼容性數據修正。
  • FLUSH PRIVILEGES 刷新權限緩存。

Windows 環境修復步驟

# 1. 確認安裝路徑(示例)
# C:\Program Files\MySQL\MySQL Server 5.1

# 2. 以管理員身份打開 CMD,進入 bin 目錄
cd "C:\Program Files\MySQL\MySQL Server 5.1\bin"

# 3. 登入 mysql 客戶端(需 root 密碼)
mysql -u root -p mysql

# 4. 執行修復腳本(路徑用正斜槓)
SOURCE C:/Program Files/MySQL/MySQL Server 5.1/share/mysql_fix_privilege_tables.sql;

# 5. 過程中可能出現 WARNING/ERROR(如列已存在),忽略繼續
# 6. 退出客戶端,重啟 MySQL 服務
net stop mysql && net start mysql

Linux 環境修復步驟

# 1. 確保服務運行中
systemctl status mysqld

# 2. 執行自帶修復腳本(會自動連接本地 root)
mysql_fix_privilege_tables --password=RootPass123!

# 或手動執行 SQL
mysql -u root -p mysql < /usr/share/mysql/mysql_fix_privilege_tables.sql

# 3. 重啟服務
systemctl restart mysqld

驗證修復結果

-- 1. 檢查 event 表是否存在
SHOW TABLES FROM mysql LIKE 'event';

-- 2. 檢查 user 表新權限列
SHOW COLUMNS FROM mysql.user LIKE '%_priv';

-- 3. 測試 Event Scheduler
SET GLOBAL event_scheduler = ON;
CREATE EVENT test_evt ON SCHEDULE EVERY 1 MINUTE DO SELECT 1;
SHOW EVENTS;

升級最佳實踐:標準化流程

  1. 升級前:全量備份(mysqldump --single-transaction --master-data=2 --all-databases)。
  2. 升級中:二進制替換 / 包管理器升級,**不要跳過版本**(如 5.1 → 5.5 → 5.6 → 5.7 → 8.0 逐級升級)。
  3. 升級後:強制執行 mysql_upgrade(5.5+ 內建,自動調用 fix 腳本 + 統計信息更新 + 表檢查)。
  4. 驗證:mysqlcheck --all-databases --fast、應用煙霧測試。

總結

ERROR 1577 典型**版本升級後系統表未同步**。Windows 手動 SOURCE fix.sql,Linux 執行 mysql_fix_privilege_tables 或 **統一使用 mysql_upgrade**。將「升級後必跑 mysql_upgrade」寫入運維 SOP,徹底杜絕此類問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved