在 Windows 上,執行 MySQL 的建議方式是將其安裝為 Windows 服務,以便在 Windows 啟動和停止時自動啟動和停止 MySQL。作為服務安裝的 MySQL 伺服器也可以使用 NET 命令或圖形化的 服務 工具從命令列進行控制。一般來說,要將 MySQL 安裝為 Windows 服務,您應該使用具有管理員權限的帳戶登入。
服務 工具(Windows 服務控制管理員)可以在 Windows 控制台中找到。為了避免衝突,建議在從命令列執行伺服器安裝或移除作業時關閉 服務 工具。
安裝服務
在將 MySQL 安裝為 Windows 服務之前,如果目前的伺服器正在執行,您應該先使用以下命令停止它
C:\> "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqladmin"
-u root shutdown
如果 MySQL root
使用者帳戶有密碼,您需要使用 -p
選項叫用 mysqladmin,並在提示時提供密碼。
此命令叫用 MySQL 管理工具 mysqladmin 來連線到伺服器並告知其關閉。此命令以 MySQL root
使用者身分連線,這是 MySQL 授權系統中的預設管理帳戶。
MySQL 授權系統中的使用者完全獨立於 Windows 下的任何作業系統使用者。
使用此命令將伺服器安裝為服務
C:\> "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld" --install
服務安裝命令不會啟動伺服器。相關說明在本節稍後提供。
為了更容易叫用 MySQL 程式,您可以將 MySQL bin
目錄的路徑名稱新增至 Windows 系統 PATH
環境變數
在 Windows 桌面上,按一下滑鼠右鍵 我的電腦 圖示,然後選取 。
接著從出現的
選單中選取 索引標籤,然後按一下 按鈕。在 系統變數 下,選取 ,然後按一下 按鈕。應該會出現 對話方塊。
將您的游標放在標示為 變數值 的空間中顯示的文字結尾。(使用 End 鍵來確保您的游標位於此空間中文字的最尾端)。然後輸入您 MySQL
bin
目錄的完整路徑名稱 (例如,C:\Program Files\MySQL\MySQL Server 8.4\bin
),而且此路徑應該以分號分隔與此欄位中存在的任何值。按一下 關閉此對話方塊,然後依序關閉每個對話方塊,直到所有已開啟的對話方塊都已關閉。您現在應該能夠透過在系統上的任何目錄中的 DOS 提示字元中輸入其名稱來叫用任何 MySQL 可執行程式,而無需提供路徑。這包括伺服器、mysql 用戶端,以及所有 MySQL 命令列工具,例如 mysqladmin 和 mysqldump。如果您在同一部機器上執行多個 MySQL 伺服器,您不應該將 MySQL
bin
目錄新增至您的 WindowsPATH
。
當您手動編輯系統 PATH
時,必須非常小心;意外刪除或修改現有 PATH
值的任何部分可能會導致您的系統運作不正常甚至無法使用。
安裝服務時可以使用以下其他引數
您可以在
--install
選項之後立即指定服務名稱。預設服務名稱為MySQL
。如果給定服務名稱,則其後可以接一個選項。依照慣例,這應該是
--defaults-file=
,以指定伺服器應在其啟動時從中讀取選項的選項檔案名稱。file_name
使用
--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 8.4\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\Temp
,LocalSystem
預設具有該目錄的寫入權限。然而,如果對預設設定進行任何變更(例如,變更執行服務的使用者或變更上述使用者變數,或使用 --tmpdir
選項將暫存目錄放在其他地方),MySQL 服務可能會因為沒有將暫存目錄的寫入權限授予正確的使用者而無法執行。
啟動服務
在 MySQL 伺服器執行個體作為服務安裝後,Windows 會在每次 Windows 啟動時自動啟動該服務。也可以立即從 服務 工具啟動服務,或使用 sc start mysqld_service_name
或 NET START mysqld_service_name
命令。SC 和 NET 命令不區分大小寫。
當以服務形式執行時,mysqld 無法存取主控台視窗,因此無法在那裡看到任何訊息。如果 mysqld 無法啟動,請檢查錯誤日誌,看看伺服器是否在那裡寫入任何訊息來指出問題的原因。錯誤日誌位於 MySQL 資料目錄中(例如,C:\Program Files\MySQL\MySQL Server 8.4\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 8.4\bin\mysqld" --install-manual
移除服務
要移除作為服務安裝的伺服器,首先如果它正在執行,請執行 SC STOP mysqld_service_name
或 NET STOP mysqld_service_name
來停止它。然後使用 SC DELETE mysqld_service_name
來移除它。
C:\> SC DELETE mysql
或者,使用 mysqld 的 --remove
選項來移除服務。
C:\> "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld" --remove
如果 mysqld 未作為服務執行,您可以從命令列啟動它。如需相關說明,請參閱 第 2.3.3.6 節,「從 Windows 命令列啟動 MySQL」。
如果您在安裝過程中遇到困難,請參閱 第 2.3.4 節,「疑難排解 Microsoft Windows MySQL 伺服器安裝」。
如需有關停止或移除 Windows 服務的詳細資訊,請參閱 第 7.8.2.2 節,「以 Windows 服務形式啟動多個 MySQL 執行個體」。