文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  將 MySQL 作為 Windows 服務啟動

2.3.3.8 將 MySQL 作為 Windows 服務啟動

在 Windows 上,執行 MySQL 的建議方式是將其安裝為 Windows 服務,以便在 Windows 啟動和停止時自動啟動和停止 MySQL。安裝為服務的 MySQL 伺服器也可以使用 NET 命令從命令列控制,或使用圖形化的 服務 公用程式控制。一般來說,若要將 MySQL 安裝為 Windows 服務,您應該使用具有管理員權限的帳戶登入。

服務 公用程式(Windows 服務控制管理員)可以在 Windows 控制台中找到。為避免衝突,建議在從命令列執行伺服器安裝或移除作業時關閉 服務 公用程式。

安裝服務

在將 MySQL 安裝為 Windows 服務之前,您應該先使用下列命令停止目前正在執行的伺服器(如果有的話)

C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqladmin"
          -u root shutdown
注意

如果 MySQL root 使用者帳戶有密碼,您需要使用 -p 選項叫用 mysqladmin,並在出現提示時提供密碼。

此命令叫用 MySQL 管理公用程式 mysqladmin 以連線至伺服器,並告知其關機。此命令會以 MySQL root 使用者連線,這是 MySQL 授權系統中的預設管理帳戶。

注意

MySQL 授權系統中的使用者完全獨立於 Windows 下的任何作業系統使用者。

使用此命令將伺服器安裝為服務

C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld" --install

服務安裝命令不會啟動伺服器。本節稍後會提供相關說明。

為了讓叫用 MySQL 程式更容易,您可以將 MySQL bin 目錄的路徑名稱新增至您的 Windows 系統 PATH 環境變數

  • 在 Windows 桌面上,以滑鼠右鍵按一下 我的電腦 圖示,然後選取 內容

  • 接著從出現的 系統內容 選單中選取 進階 索引標籤,然後按一下 環境變數 按鈕。

  • 系統變數 下,選取 Path,然後按一下 編輯 按鈕。應該會出現 編輯系統變數 對話方塊。

  • 將游標放在標示為 變數值 的空間中出現的文字末尾。(使用 End 鍵,以確保您的游標位於此空間中文字的最末尾。)然後輸入 MySQL bin 目錄的完整路徑名稱 (例如,C:\Program Files\MySQL\MySQL Server 9.0\bin),並且此路徑應以分號與此欄位中存在的任何值分隔。按一下 確定,依序關閉此對話方塊和每個對話方塊,直到關閉所有開啟的對話方塊。現在您應該能夠從系統上的任何目錄,在 DOS 提示字元中輸入任何 MySQL 可執行程式的名稱來叫用它,而無需提供路徑。這包括伺服器、mysql 用戶端,以及所有 MySQL 命令列公用程式,例如 mysqladminmysqldump

    如果您在同一台機器上執行多個 MySQL 伺服器,則不應將 MySQL 的 bin 目錄加入 Windows 的 PATH 環境變數中。

警告

手動編輯系統 PATH 時必須非常小心;意外刪除或修改現有 PATH 值的任何部分,都可能導致系統故障甚至無法使用。

安裝服務時可以使用以下額外參數

  • 您可以在 --install 選項後立即指定服務名稱。預設的服務名稱為 MySQL

  • 如果指定了服務名稱,則後面可以接一個選項。按照慣例,這應該是 --defaults-file=檔案名稱,以指定伺服器啟動時應從中讀取選項的選項檔案名稱。

    使用 --defaults-file 以外的單一選項是可行的,但不建議。 --defaults-file 更具彈性,因為它讓您能夠透過將多個啟動選項放入指定的選項檔案中來為伺服器指定多個啟動選項。

  • 您也可以在服務名稱後指定 --local-service 選項。這會使伺服器使用具有有限系統權限的 LocalService Windows 帳戶執行。如果在服務名稱後同時給定 --defaults-file--local-service,它們的順序可以任意。

對於作為 Windows 服務安裝的 MySQL 伺服器,以下規則決定伺服器使用的服務名稱和選項檔案

  • 如果服務安裝命令在 --install 選項後未指定服務名稱或預設服務名稱 (MySQL),則伺服器會使用 MySQL 服務名稱,並從標準選項檔案的 [mysqld] 群組中讀取選項。

  • 如果服務安裝命令在 --install 選項後指定了 MySQL 以外的服務名稱,則伺服器會使用該服務名稱。它會從標準選項檔案的 [mysqld] 群組和與服務名稱相同的群組中讀取選項。這讓您能夠使用 [mysqld] 群組來設定所有 MySQL 服務都應使用的選項,並使用具有服務名稱的選項群組來設定以該服務名稱安裝的伺服器使用的選項。

  • 如果服務安裝命令在服務名稱後指定了 --defaults-file 選項,則伺服器會以與前一個項目描述相同的方式讀取選項,但只會從指定的檔案讀取選項,而忽略標準選項檔案。

作為更複雜的範例,請考慮以下命令

C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld"
          --install MySQL --defaults-file=C:\my-opts.cnf

在此,預設服務名稱 (MySQL) 是在 --install 選項後給定的。如果未給定 --defaults-file 選項,此命令的效果會導致伺服器從標準選項檔案讀取 [mysqld] 群組。然而,由於存在 --defaults-file 選項,因此伺服器會從 [mysqld] 選項群組讀取選項,且只從指定的檔案讀取。

注意

在 Windows 上,如果伺服器啟動時帶有 --defaults-file--install 選項,則 --install 必須放在第一位。否則,mysqld.exe 會嘗試啟動 MySQL 伺服器。

您也可以在啟動 MySQL 服務之前,在 Windows 的 服務 工具中將選項指定為啟動參數。

最後,在嘗試啟動 MySQL 服務之前,請確保將要執行服務的作業系統使用者的使用者變數 %TEMP%%TMP% (如果已設定,還有 %TMPDIR%) 指向使用者具有寫入權限的資料夾。執行 MySQL 服務的預設使用者是 LocalSystem,其 %TEMP%%TMP% 的預設值是 C:\Windows\TempLocalSystem 預設具有寫入該目錄的權限。然而,如果該預設設定有任何變更 (例如,變更執行服務的使用者或變更提及的使用者變數,或已使用 --tmpdir 選項將暫存目錄放到其他地方),則 MySQL 服務可能無法執行,因為尚未授權適當的使用者寫入暫存目錄的權限。

啟動服務

將 MySQL 伺服器實例安裝為服務後,Windows 會在每次 Windows 啟動時自動啟動該服務。也可以從 服務 工具立即啟動該服務,或者使用 sc start mysqld_service_nameNET START mysqld_service_name 命令。SCNET 命令不區分大小寫。

當作為服務執行時,mysqld 無法存取主控台視窗,因此無法在那裡看到任何訊息。如果 mysqld 未啟動,請檢查錯誤日誌,查看伺服器是否在那裡寫入任何訊息以指出問題的原因。錯誤日誌位於 MySQL 資料目錄中 (例如,C:\Program Files\MySQL\MySQL Server 9.0\data)。它是副檔名為 .err 的檔案。

當 MySQL 伺服器已安裝為服務且服務正在執行時,Windows 會在 Windows 關機時自動停止該服務。也可以使用 服務 工具、sc stop mysqld_service_name 命令、NET STOP mysqld_service_name 命令或 mysqladmin shutdown 命令來手動停止伺服器。

如果您不希望在開機過程中自動啟動服務,您也可以選擇將伺服器安裝為手動服務。若要執行此操作,請使用 --install-manual 選項,而不是 --install 選項

C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld" --install-manual
移除服務

若要移除作為服務安裝的伺服器,請先執行 SC STOP mysqld_service_nameNET STOP mysqld_service_name 來停止它 (如果正在執行)。然後使用 SC DELETE mysqld_service_name 來移除它

C:\> SC DELETE mysql

或者,使用 mysqld--remove 選項來移除服務。

C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld" --remove

如果 mysqld 未作為服務執行,您可以從命令列啟動它。如需相關說明,請參閱 第 2.3.3.6 節,〈從 Windows 命令列啟動 MySQL〉

如果您在安裝過程中遇到困難,請參閱 第 2.3.4 節,〈疑難排解 Microsoft Windows MySQL 伺服器安裝〉

如需有關停止或移除 Windows 服務的詳細資訊,請參閱 第 7.8.2.2 節,〈將多個 MySQL 實例作為 Windows 服務啟動〉