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

MySQL 服務 1067 錯誤 (進程意外終止) 多維度解決方案彙總

     編輯:MySQL 資料庫相關知識

錯誤現象

net start mysql → MySQL 服務無法啟動。系統發生 1067 錯誤。進程意外終止。

核心排查矩陣

類別典型原因解決動作
配置檔my.ini 路徑衝突 / 關鍵參數缺失 / 編碼錯誤僅保留安裝目錄 my.ini;確保 [mysqld] 含 basedir/datadir;編碼改 utf8mb4
儲存引擎預設 default-storage-engine=InnoDB 但版本不支援/損壞改為 MyISAM 或重建 ibdata/ib_logfile
權限/目錄datadir 權限不足 / 低權限服務帳戶密碼過期 / 目錄被殺毒隔離授予服務帳戶完全控制;排除殺毒白名單;重置服務帳戶密碼
服務註冊服務路徑指向錯誤 / 殘留舊服務mysqld -remove && mysqld -install 重註冊
資料檔ibdata1/ib_logfile 損壞 / 非正常關機導致崩潰恢複失敗用備份覆蓋 或 刪除 ib_logfile0/1 讓 InnoDB 重建 (風險:可能丟資料)
埠衝突3306 被佔用 / IPv6 ::1 綁定問題netstat -ano | findstr 3306;my.ini bind-address=0.0.0.0

標準修復流程 (Windows)

  1. net stop mysql (若卡住 → 任務管理員殺 mysqld.exe)
  2. 刪除 C:\Windows\my.ini (若存在)
  3. 備份 datadir (整個 data 目錄)
  4. mysqld -remove
  5. 從安裝目錄複製 my-small.ini → my.ini,修改 basedir/datadir
  6. mysqld -install
  7. net start mysql
  8. 驗證 mysql -u root -p 連線正常

進階案例:安全配置後 1067

  • 現象:以普通帳戶運行 MySQL (如 mysqlrun),配置目錄 ACL 後服務啟動失敗。
  • 根因:服務帳戶密碼策略/權限繼承/登入類型 (批次 vs 服務) 不匹配。
  • 解決:
    1. 確認帳戶「登入為服務」權限 (本地安全策略)。
    2. 帳戶密碼設為「永不過期」。
    3. 服務屬性 → 登入 → 重新輸入密碼 → 套用 → 重啟。

Linux 環境快速檢查

# 檢查錯誤日誌
tail -100 /var/log/mysqld.log

# 檢查權限
ls -la /var/lib/mysql/

# 檢查埠
ss -tlnp | grep 3306

# 重建服務腳本
cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
chkconfig mysqld on

預防清單

  1. 安裝時自訂 datadir 非系統盤,便於備份/遷移/重裝保留資料。
  2. 配置檔**唯一性**:僅安裝目錄 my.ini 生效,移除系統目錄副本。
  3. 服務帳戶:專用帳戶、密碼不過期、最小權限、白名單防殺毒。
  4. 監控 innodb_log_file_size、innodb_buffer_pool_size 與實體記憶體匹配。
  5. 定期 CHECK TABLE、BACKUP、pt-table-checksum。

結語

1067 是「MySQL 進程啟動後異常退出」的通用碼,**無單一標準答案**。「配置檔 → 權限/目錄 → 儲存引擎檔案 → 服務註冊 → 埠/網路」五維排查,配合錯誤日誌 (.err) 定位具體斷點,通常 15 分鐘內可解決。建立標準化部署腳本 (Ansible/Shell) 可杜絕人為配置漂移。

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