萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Linux 下 MySQL 服務無法啟動的常見原因與解決方案

排查流程

  1. 清理殘留進程: 刪除所有 MySQL 的 PID 文件,確保無舊進程干擾。
  2. 嘗試啟動: 執行啟動命令,若成功則問題解決;否則進入下一步。
  3. 分析錯誤日志: 查看 MySQL 錯誤日志(通常在數據目錄下的 .err 文件),根據具體報錯對症下藥。

典型故障場景與處理

場景一:磁盤空間耗盡

日志提示:Disk is full writing './mysql-bin.~rec~' (Errcode: 28)

檢查磁盤使用情況(df -h),發現 /var 分區 100% 滿。進一步排查發現 MySQL 二進制日志(mysql-bin.*)佔用約 50GB。

解決: 停止 MySQL,刪除舊的二進制日志文件,並在 my.cnf 中註釋掉 log-bin 關閉二進制日志功能,或設置 expire_logs_days 自動過期清理。

場景二:Socket 文件路徑不匹配

報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

編輯 /etc/my.cnf,確保 [mysqld]、[mysql.server]、[client] 區塊均指向同一 socket 路徑:

[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/usr/local/mysql

[client]
socket=/var/lib/mysql/mysql.sock

若仍失敗,嘗試直接啟動 /usr/local/mysql/bin/mysqld_safe &。

場景三:非正常關機導致數據損壞

若因斷電、強制重啟導致表損壞,最快恢復方式是用已知正常的備份表文件(.frm、.MYD、.MYI、ibdata1、ib_logfile* 等)覆蓋損壞文件,或直接重裝 MySQL 並恢復備份數據。

場景四:徹底重裝 MySQL

  1. 卸載 MySQL 並清理安裝目錄、my.ini/my.cnf。
  2. 檢查並殺掉殘留進程(killall mysqld)。
  3. 刪除系統服務註冊(Windows 下用 sc delete mysql)。
  4. 重新安裝、配置、導入備份數據。

提示:若因安全策略導致服務無法啟動,檢查服務登錄用戶密碼是否過期或權限不足。

copyright © 萬盛學電腦網 all rights reserved