第一次安裝和執行 MySQL 時,您可能會遇到某些錯誤,導致 MySQL 伺服器無法啟動。本節將協助您診斷和更正其中一些錯誤。
當您對伺服器問題進行疑難排解時,您的第一個資源是錯誤記錄。MySQL 伺服器使用錯誤記錄來記錄與阻止伺服器啟動的錯誤相關的資訊。錯誤記錄位於您的 my.ini
檔案中指定的資料目錄中。預設的資料目錄位置是 C:\Program Files\MySQL\MySQL Server 8.4\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 8.4
和C:\Program Files\MySQL\MySQL Server 8.4\data
,分別) 不同的位置時,通常會發生這些訊息。當 MySQL 升級並安裝到新位置,但未更新設定檔案以反映新位置時,可能會發生這種情況。此外,舊的和新的設定檔案可能會衝突。在升級 MySQL 時,請務必刪除或重新命名任何舊的設定檔案。
如果您已將 MySQL 安裝到
C:\Program Files\MySQL\MySQL Server 8.4
以外的目錄,請確保 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 8.4 # set datadir to the location of your data directory datadir=D:\\MySQLdata
選項檔案值中使用反斜線的規則在第 6.2.2.2 節,「使用選項檔案」中給出。
如果您在 MySQL 設定檔案中變更了
datadir
值,您必須在重新啟動 MySQL 伺服器之前移動現有 MySQL 資料目錄的內容。如果您重新安裝或升級 MySQL,而沒有先停止並移除現有的 MySQL 服務,然後使用 MySQL 設定工具設定 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
語法。