type
status
date
slug
summary
tags
category
icon
password

官方用法

使用 systemctl 控制 mysqld 時,在 /usr/lib/systemd/system/ 路徑下會有兩個檔案分別是 mysqld.service 和 mysqld@.service

mysqld.service

在沒有特殊情況,只需要啟動一個 mysqld 服務時,通常都是使用此方式:

mysqld@.service

假如我們今天希望在一台機器上同時啟動多個 mysqld 服務時就需要用到 mysqld@.service 來啟動,該啟動方式允許在 my.cnf 中設定多個 mysqld 設定,只需要在 mysqld 的標籤後方加上 @名稱
接著只要在 systemctl 時也加上 @名稱 就可以透過 systemd 管理多個 mysqld 服務:

設定檔分開用法

雖然我們可以在同一個 my.cnf 設定檔中建立多個 mysqld 設定,但如果今天我們希望將不同機器的設定檔分開需要怎麼辦呢?
  1. 分開 mysqld 設定檔
    1. 調整 /usr/lib/systemd/system/mysqld@.serviceExecStart 設定或是自訂 systemd 服務:
      1. 接著只要在 systemctl 時也加上 @名稱 就可以透過 systemd 管理多個 mysqld 服務:

        systemd 相關Q&A

        Specifiers 裡 %i 與 %I

        從 systemd 的文檔中我們可以知道 %i%I 唯一的區別是 %IUnescaping
        那什麼是 Unescaping 呢?下面讓我們實際測試看看:
        可以發現具體來說 %i 會將 / 轉為 - ,而 %I 會將 - 轉為 /
         

        參考