MySQL 意外關閉:如何解決 XAMPP MySQL 錯誤

已發表: 2024-03-21

運行時錯誤在即時伺服器使用者和本機伺服器使用者中都很常見。 「MySQL 意外關閉」是許多開發人員、工程師和資料庫管理員在使用 XAMPP 作為本機開發環境時遇到的消息。 這種情況可能很煩人,但這並不是一個罕見的問題。 好消息是,它是可以修復的。 我們在這裡為你提供支援。

在本指南中,我們將討論為什麼您會收到「MySQL 意外關閉」訊息以及如何解決此 XAMPP MySQL 錯誤。

首先討論問題的根源很重要。 但首先,讓我們了解更多關於 XAMPP 的資訊。

MySQL 意外關閉。 XAMPP MySQL 錯誤。

了解 XAMPP 的基礎知識

XAMPP本質上是一個免費、開源的跨平台Web伺服器解決方案包。 它適用於不同的作業系統,如 Windows、macOS 和 Linux,用於建立和管理本機 Web 伺服器環境。

XAMPP 可讓使用者輕鬆測試新功能、偵錯程式碼並確保您的專案在不同環境中順利運行。 XAMPP 還可以讓您設定必要的軟體來操作您的 WordPress 網站。

這使其成為開發人員的熱門選擇,尤其是那些使用基於 PHP 的應用程式(如 WordPress)的開發人員。

XAMPP 代表:

X:跨平台,

答:Apache HTTP Server,一種流行的 Web 伺服器軟體。

M:MariaDB(原MySQL),一個用於儲存網站資料的資料庫管理系統。

P:PHP,一種用於開發動態 Web 內容的腳本語言。

P:Perl,一種可用於 Web 開發和其他任務的程式語言。

隨著對系統有了更好的了解,我們來討論這個錯誤的原因。

XAMPP中MySQL關閉錯誤介紹

XAMPP 錯誤「MySQL 意外關閉」表示您的開發環境中的 MySQL 服務已停止運作。 無需您手動停止 MySQL。 您可以出於多種原因執行此操作,例如在伺服器重新啟動期間,意外關閉不是您通常期望的情況。

當 MySQL 意外停機時,您的網站將無法與其資料庫通訊。 這是一個關鍵問題,特別是對於像 WordPress 這樣的資料庫驅動平台,它的所有操作都嚴重依賴資料庫連線。

在 XAMPP 介面中,您可能會注意到指導您解決此特定錯誤的訊息,特別是在事件日誌中突出顯示的訊息。

XAMPP MySQL 錯誤的變體

當在 XAMPP 中遇到 MySQL 關閉時,這些訊息之一將出現在您的螢幕上。

  • MySQL 意外關閉。
  • 錯誤:MySQL 意外關閉。
  • MySQL 服務未啟動。
  • 連接埠問題,例如“連接埠 3306 已被另一個應用程式使用”。
  • 記錄指向 ibdata 檔案問題的錯誤訊息。
  • MySQL 程序意外終止。

這些變化中的每一個都可以提供有關原因的線索並在故障排除時提供幫助。

XAMPP MySQL 錯誤背後的原因

遇到此 XAMPP MySQL 錯誤「MySQL 意外關閉」可能是由於多種原因造成的:

連接埠衝突: MySQL預設使用3306。如果其他電腦應用程式正在使用此端口,MySQL 將無法啟動,從而導致關閉。

表格或資料檔案損壞:如果 MySQL 檔案因磁碟問題、意外關閉或其他原因而損壞,MySQL 可能無法啟動。

配置不充分: my.ini 檔案中的錯誤配置(例如不正確的緩衝區大小或記憶體分配)可能會導致啟動失敗。

權限問題: MySQL需要一定的權限才能存取其資料檔案並執行操作。如果這些權限不正確,MySQL 的操作可能會停止。

修復 XAMPP 錯誤“MySQL 意外關閉”

我們到達了期待已久的故障排除部分。 以下是有關如何修復 XAMPP 錯誤的逐步指南:“MySQL 意外關閉”

1. 檢查連接埠衝突

對於 Windows 使用者:

  1. 開啟命令提示字元:按 Win + R → 輸入 cmd → 按 Enter。
  2. 使用 netstat:輸入 netstat -ano |findstr 3306 → 按 Enter 鍵。 此命令搜尋使用連接埠 3306(MySQL 的預設連接埠)的任何應用程式。
  3. 解釋輸出:如果您看到一行輸出,則表示某些內容正在使用連接埠 3306。請注意該行末尾的PID(進程 ID),因為您需要它來識別衝突的應用程式。

對於 macOS/Linux 用戶:

  1. 打開終端機。
  2. 使用 lsof:輸入 lsof -i :3306 → 按 Enter 鍵。此命令列出使用連接埠 3306 開啟的檔案和對應的應用程式。
  3. 查看結果:如果命令返回訊息,則表示連接埠 3306 正在使用。記下提供的應用程式名稱或PID。

識別出使用連接埠 3306 的應用程式後,透過變更衝突應用程式的連接埠或 MySQL 連接埠來解決問題。

選項 1:使用您之前記下的 PID 或應用程式名稱來尋找衝突的應用程式。 尋找應用程式的配置設定或檔案。 尋找連接埠號碼設定(應設定為 3306)並將其變更為其他連接埠號碼。 儲存您的變更。

更改 3306 連接埠。

選項 2:在 XAMPP 中更改 MySQL 的連接埠:開啟位於 XAMPP MySQL 資料夾中的my.ini文件,尋找指定連接埠的行(通常為 port=3306),然後將其變更為可用連接埠。 進行此變更後重新啟動 MySQL。

2. 修復損壞的表或資料文件

據我們了解,XAMPP 中可能存在損壞的 MySQL 表或資料文件,導致 MySQL 意外關閉問題。 以下是識別腐敗的步驟。

  1. 到 XAMPP 安裝目錄 → 到mysql\data 資料夾 這是 MySQL 儲存資料庫檔案的地方。
  2. 尋找任何.err 文件,這些文件是錯誤日誌文件,可能包含有關出現問題的資訊。
  3. 查看以您的資料庫命名的檔案。 請注意看起來不尋常的檔案大小和修改日期,因為這些可能是損壞的指標。

如果您發現損壞的檔案。 以下是解決方法。

對於 MyISAM 表

  1. 首先備份您的資料。 透過 XAMPP 的 phpMyAdmin 匯出資料庫來執行此操作,如果您熟悉命令列工具,也可以使用mysqldump命令來執行此操作。
  2. 開啟命令提示字元 (Windows) 或終端機 (macOS/Linux)。

鍵入 cd 後接路徑,前往 XAMPP 的 MySQL 目錄內的 bin 資料夾,例如Windows 使用者的C:\xampp\mysql\bin 。

在命令列中,輸入myisamchk -r /path/to/your/table.MYI ,確保將/path/to/your/table.MYI替換為您需要修復的MyISAM的真實路徑 -r 代表“恢復”,旨在修復您的表。

處理 InnoDB 表

由於其設計,InnoDB 表有點棘手,並且沒有像 myisamchk 這樣簡單的工具。

  1. 查看 mysql\data 目錄中的 .err 檔案以取得有關InnoDB 表的錯誤訊息 這些可以為您提供有關問題所在的提示。
  2. 嘗試強制恢復。 強制 MySQL 進入復原模式。 編輯my.ini(Windows)my.cnf(其他作業系統)文件,[mysqld]部分新增innodb_force_recovery = 1 ,然後重新啟動MySQL。

如果情況看起來很糟糕,最好的選擇可能是從備份中還原。 希望您有一個可以替換損壞的表或資料庫的最新版本。

3. 檢查並調整配置

  1. 使用文字編輯器開啟my.ini檔案。 要檢查的關鍵事項包括innodb_buffer_pool_size (增加它可能有助於效能)以及basedirdatadir中指定的路徑
  2. 如果您發現任何配置錯誤或懷疑某個設定可能導致問題,請進行必要的調整。 例如,如果innodb_buffer_pool_size對於您的工作負載設定得太低,請相應地增加它。 在進行更改之前,請務必備份原始my.ini檔案。

4.設定正確的權限

MySQL 或 XAMPP 可能沒有存取其目錄和檔案所需的權限,尤其是在安全軟體更新或變更之後。

  1. 檢查 MySQL 和 XAMPP 資料夾的權限。
  2. 確保執行 XAMPP 的使用者帳戶具有完全存取權。
  3. 在 Windows 上,您可能需要右鍵單擊XAMPP資料夾,請前往“屬性” →“安全性”,然後進行相應調整。
  4. 在 macOS 和 Linux 上,使用chmodchown指令設定正確的權限。

5. 重新啟動並監控

實施修復後,透過 XAMPP 控制面板重新啟動 XAMPP,特別是 MySQL 服務。

請留意 MySQL 錯誤日誌檔案中是否有任何新的警告或錯誤。 此日誌通常位於資料目錄中或在my.ini檔案中指定。

加起來

使用本機伺服器環境時,遇到 XAMPP MySQL 錯誤「MySQL 意外關閉」是您應該了解的常見問題。 了解如何修復它並恢復伺服器甚至是至關重要的。 在本指南中,我們向您介紹了 XAMPP 的基礎知識、它是如何運作的、了解了問題、它發生的原因以及如何逐步解決它而不驚慌。

如果您使用本機 XAMPP 伺服器,請將本指南放在手邊,以防再次遇到問題。 別擔心,我們已經為您詳細介紹了整個故障排除過程。