第一次安裝和執行 MySQL 時,您可能會遇到某些錯誤,導致 MySQL 伺服器無法啟動。本節將協助您診斷並修正其中一些錯誤。
排解伺服器問題時,您的第一個資源是錯誤日誌。MySQL 伺服器使用錯誤日誌記錄與導致伺服器無法啟動的錯誤相關的資訊。錯誤日誌位於您的 my.ini
檔案中指定的資料目錄中。預設資料目錄位置為 C:\Program Files\MySQL\MySQL Server 9.0\data
,或在 Windows 7 和 Windows Server 2008 上為 C:\ProgramData\Mysql
。C:\ProgramData
目錄預設為隱藏。您需要變更您的資料夾選項才能看到目錄和內容。如需有關錯誤日誌和瞭解內容的詳細資訊,請參閱第 7.4.2 節,〈錯誤日誌〉。
如需有關可能錯誤的資訊,也請參閱 MySQL 服務啟動時顯示的控制台訊息。在將 mysqld 作為服務安裝後,從命令列使用 SC START mysqld_service_name
或 NET START mysqld_service_name
命令,以查看有關以服務方式啟動 MySQL 伺服器的任何錯誤訊息。請參閱第 2.3.3.8 節,〈以 Windows 服務方式啟動 MySQL〉。
下列範例顯示您在安裝 MySQL 和第一次啟動伺服器時可能遇到的其他常見錯誤訊息
如果 MySQL 伺服器找不到
mysql
權限資料庫或其他重要檔案,它會顯示這些訊息System error 1067 has occurred. Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
當 MySQL 基本目錄或資料目錄安裝在與預設位置不同的位置時,通常會發生這些訊息(分別為
C:\Program Files\MySQL\MySQL Server 9.0
和C:\Program Files\MySQL\MySQL Server 9.0\data
)。當 MySQL 升級並安裝到新位置時,但組態檔案未更新以反映新位置時,可能會發生這種情況。此外,舊的和新的組態檔案可能會衝突。升級 MySQL 時,請務必刪除或重新命名任何舊的組態檔案。
如果您將 MySQL 安裝到
C:\Program Files\MySQL\MySQL Server 9.0
以外的目錄,請確保 MySQL 伺服器透過使用組態 (my.ini
) 檔案知道這一點。將my.ini
檔案放入您的 Windows 目錄中,通常是C:\WINDOWS
。若要從WINDIR
環境變數的值判斷其確切位置,請從命令提示字元發出下列命令C:\> echo %WINDIR%
您可以使用任何文字編輯器(例如記事本)建立或修改選項檔案。例如,如果 MySQL 安裝在
E:\mysql
中,而資料目錄是D:\MySQLdata
,您可以建立選項檔案並設定[mysqld]
區段,以指定basedir
和datadir
選項的值[mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir to the location of your data directory datadir=D:/MySQLdata
Microsoft Windows 路徑名稱在選項檔案中使用 (正) 斜線而非反斜線指定。如果您確實使用反斜線,請將它們加倍
[mysqld] # set basedir to your installation path basedir=C:\\Program Files\\MySQL\\MySQL Server 9.0 # set datadir to the location of your data directory datadir=D:\\MySQLdata
選項檔案值中使用反斜線的規則在第 6.2.2.2 節,〈使用選項檔案〉中給出。
如果您變更 MySQL 組態檔案中的
datadir
值,您必須在重新啟動 MySQL 伺服器之前移動現有 MySQL 資料目錄的內容。如果您重新安裝或升級 MySQL,但未先停止並移除現有的 MySQL 服務,然後使用 MySQL Configurator 設定 MySQL,您可能會看到此錯誤
Error: Cannot create Windows service for MySql. Error: 0
當設定精靈嘗試安裝服務並找到具有相同名稱的現有服務時,就會發生這種情況。
解決此問題的一種方法是在使用組態精靈時,選擇除了
mysql
以外的服務名稱。這會讓新的服務正確安裝,但會將過時的服務保留在原位。雖然這不會造成任何損害,但最好移除不再使用的舊服務。若要永久移除舊的
mysql
服務,請在命令列中以具備管理員權限的使用者身分執行以下命令:C:\> SC DELETE mysql [SC] DeleteService SUCCESS
如果您的 Windows 版本沒有
SC
公用程式,請從 http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp 下載delsrv
公用程式,並使用delsrv mysql
語法。