在 Windows 上,MySQL 伺服器可以做為 Windows 服務執行。安裝、控制和移除單一 MySQL 服務的程序在第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」中說明。
若要設定多個 MySQL 服務,您必須確保每個實例使用不同的服務名稱,以及其他每個實例都必須是唯一的參數。
對於以下說明,假設您想要從安裝在 C:\mysql-5.7.9
和 C:\mysql-9.0.0
的兩個不同版本的 MySQL 執行 mysqld 伺服器。(如果您正在執行 5.7.9 做為您的生產伺服器,但同時也想要使用 9.0.0 進行測試,則可能會是這種情況。)
若要將 MySQL 安裝為 Windows 服務,請使用 --install
或 --install-manual
選項。如需這些選項的相關資訊,請參閱第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」。
根據上述資訊,您有幾種方式可以設定多個服務。以下說明一些範例。嘗試任何範例之前,請關閉並移除任何現有的 MySQL 服務。
方法 1: 在其中一個標準選項檔案中指定所有服務的選項。若要執行此動作,請針對每個伺服器使用不同的服務名稱。假設您想要使用服務名稱
mysqld1
執行 5.7.9 mysqld,並使用服務名稱mysqld2
執行 9.0.0 mysqld。在此情況下,您可以針對 5.7.9 使用[mysqld1]
群組,並針對 9.0.0 使用[mysqld2]
群組。例如,您可以像這樣設定C:\my.cnf
# options for mysqld1 service [mysqld1] basedir = C:/mysql-5.7.9 port = 3307 enable-named-pipe socket = mypipe1 # options for mysqld2 service [mysqld2] basedir = C:/mysql-9.0.0 port = 3308 enable-named-pipe socket = mypipe2
依以下方式安裝服務,使用完整的伺服器路徑名稱以確保 Windows 針對每個服務註冊正確的可執行程式
C:\> C:\mysql-5.7.9\bin\mysqld --install mysqld1 C:\> C:\mysql-9.0.0\bin\mysqld --install mysqld2
若要啟動服務,請使用服務管理員,或使用 NET START 或 SC START 命令,並帶入適當的服務名稱。
C:\> SC START mysqld1 C:\> SC START mysqld2
若要停止服務,請使用服務管理員,或使用 NET STOP 或 SC STOP 命令,並帶入適當的服務名稱。
C:\> SC STOP mysqld1 C:\> SC STOP mysqld2
方法 2: 在不同的檔案中為每個伺服器指定選項,並在安裝服務時使用
--defaults-file
來告知每個伺服器要使用哪個檔案。在這種情況下,每個檔案都應使用[mysqld]
群組列出選項。使用此方法,若要為 5.7.9 版本的 mysqld 指定選項,請建立一個名為
C:\my-opts1.cnf
的檔案,內容如下所示:[mysqld] basedir = C:/mysql-5.7.9 port = 3307 enable-named-pipe socket = mypipe1
若要為 9.0.0 版本的 mysqld 指定選項,請建立一個名為
C:\my-opts2.cnf
的檔案,內容如下所示:[mysqld] basedir = C:/mysql-9.0.0 port = 3308 enable-named-pipe socket = mypipe2
請如下安裝服務(在單行中輸入每個命令):
C:\> C:\mysql-5.7.9\bin\mysqld --install mysqld1 --defaults-file=C:\my-opts1.cnf C:\> C:\mysql-9.0.0\bin\mysqld --install mysqld2 --defaults-file=C:\my-opts2.cnf
當您將 MySQL 伺服器安裝為服務並使用
--defaults-file
選項時,服務名稱必須位於選項之前。安裝服務後,啟動和停止它們的方式與前面的範例相同。
若要移除多個服務,請針對每個服務使用 SC DELETE mysqld_service_name
。或者,針對每個服務使用 mysqld --remove,並在 --remove
選項後指定服務名稱。如果服務名稱是預設值 (MySQL
),在使用 mysqld --remove 時,您可以省略它。