在 Windows 上,MySQL 伺服器可以作為 Windows 服務執行。安裝、控制和移除單一 MySQL 服務的程序會在第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」中說明。
若要設定多個 MySQL 服務,您必須確保每個實例除了每個實例都必須唯一的其他參數外,還使用不同的服務名稱。
對於以下說明,假設您想要從安裝在 C:\mysql-5.7.9
和 C:\mysql-8.4.0
的兩個不同版本的 MySQL 中執行 mysqld 伺服器。(如果您執行 5.7.9 作為您的生產伺服器,但也想使用 8.4.0 進行測試,則可能會發生這種情況。)
若要將 MySQL 安裝為 Windows 服務,請使用 --install
或 --install-manual
選項。如需這些選項的相關資訊,請參閱第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」。
根據先前的資訊,您可以使用數種方式來設定多個服務。以下說明一些範例。在嘗試任何範例之前,請關閉並移除任何現有的 MySQL 服務。
方法 1:在其中一個標準選項檔案中指定所有服務的選項。若要執行此操作,請為每個伺服器使用不同的服務名稱。假設您想要使用
mysqld1
的服務名稱執行 5.7.9 mysqld,並使用mysqld2
的服務名稱執行 8.4.0 mysqld。在此情況下,您可以將[mysqld1]
群組用於 5.7.9,並將[mysqld2]
群組用於 8.4.0。例如,您可以像這樣設定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-8.4.0 port = 3308 enable-named-pipe socket = mypipe2
如下所示安裝服務,使用完整的伺服器路徑名稱來確保 Windows 為每個服務註冊正確的可執行程式
C:\> C:\mysql-5.7.9\bin\mysqld --install mysqld1 C:\> C:\mysql-8.4.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
對於 8.4.0 mysqld,請建立類似以下的檔案
C:\my-opts2.cnf
[mysqld] basedir = C:/mysql-8.4.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-8.4.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 時省略它。