在 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 時省略它。