在 Arch Linux 上部署 MySQL 資料庫其實相當簡單,透過 Pacman 套件管理器即可快速完成安裝。然而,安裝完成後仍需進行一系列初始化設定,才能讓 MySQL 服務順利啟動並正常運作。本文將詳細記錄從安裝、建立系統帳號、初始化資料目錄到啟動服務的完整流程,並補充 mysqld_safe 啟動腳本的核心參數與關機流程說明,協助您在 Arch Linux 環境中穩定部署 MySQL。
開啟終端機,以 root 權限執行以下指令即可安裝最新版 MySQL:
pacman -Sv mysql
安裝過程會自動處理相依性套件,完成後請繼續後續設定步驟。
為了安全性考量,MySQL 服務不應以 root 身分執行,需建立專屬的系統帳號:
groupadd mysql
useradd -g mysql mysql
上述指令將建立 mysql 群組與同名使用者,後續初始化資料目錄與啟動服務均會用到此帳號。
使用 mysql_install_db 建立系統預設資料表(如 mysql 系統庫、權限表等):
mysql_install_db --user=mysql
注意:參數 --user 後接的帳號名稱需與前一步建立的一致(小寫 mysql),否則可能導致權限錯誤。
若啟動時出現找不到目錄或檔案的提示,請手動建立:
mkdir -p /var/lib/mysql
touch /var/lib/mysql/$(hostname).err
此處 $(hostname) 會自動帶入主機名稱,對應錯誤日誌命名慣例。
完成上述準備工作後,即可使用 mysqld_safe 啟動服務:
mysqld_safe &
& 符號表示在背景執行。若需前景除錯,可移除該符號直接觀察輸出。
mysqld_safe 是 Unix/NetWare 系統上啟動 MySQL 服務的推薦方式,具備以下安全機制:
--core-file-size、--open-files-limit 等資源限制參數為向後相容,二進制發行版仍保留 safe_mysqld 符號連結指向 mysqld_safe,但官方已宣告未來版本將移除,請勿依賴此連結。
mysqld-max 可執行檔,預設啟用該版本(常見於 Max RPM 套件)mysqld_safe 仍會嘗試啟動舊的 mysqld-max,需手動清理舊檔或以 --mysqld/--mysqld-version 明確指定啟動程式mysqld_safe 依序讀取選項檔中的 [mysqld]、[server]、[mysqld_safe] 區段;為相容舊版也會讀取 [safe_mysqld],但建議於 MySQL 5.0+ 環境改用 [mysqld_safe]。
| 參數 | 說明 |
|---|---|
--basedir=path | MySQL 安裝根目錄 |
--datadir=path | 資料目錄路徑 |
--log-error=path | 錯誤日誌檔案路徑 |
--pid-file=path | PID 檔案路徑 |
--port=port_num | TCP/IP 監聽埠(非 root 需 ≥1024) |
--socket=path | Unix Socket 檔案路徑 |
--user={user_name|user_id} | 執行服務的系統帳號 |
--defaults-file=path | 指定專用選項檔(必須為第一個參數) |
--ledir=path | 指定 mysqld 可執行檔所在目錄 |
--mysqld=prog_name | 指定要啟動的伺服器程式名稱 |
重要:若同時使用 --defaults-file 與其他參數,--defaults-file 必須放在第一位,否則不生效。
mysqld_safe 會嘗試在工作目錄下尋找 bin/ 與 data/(二進制版)或 libexec/ 與 var/(原始碼安裝)。若安裝於非標準路徑,可在安裝目錄下執行 bin/mysqld_safe &,或以 --ledir、--datadir 明確指定路徑。
避免直接修改 mysqld_safe 腳本本身,參數調整請透過命令列或 my.cnf 的 [mysqld_safe] 區段進行。若必須修改腳本,請備份以防升級覆蓋。
理解關機流程有助於排查異常關機與資料一致性問題,整個過程分為六個階段:
SHUTDOWN 權限的使用者執行 mysqladmin shutdownSIGTERM 訊號SIGTERM 訊號 → 訊號處理執行緒直接處理或建立獨立執行緒Error: Can't create thread to kill server關閉所有監聽端點:TCP/IP 埠、Unix Socket、Windows Named Pipe/Shared Memory,防止新連線進入關機流程。
完成上述步驟後,主程序退出,關機流程正式結束。
在 Arch Linux 上部署 MySQL 的關鍵在於:正確建立系統帳號、初始化資料目錄、確保錯誤日誌目錄可寫入,並善用 mysqld_safe 的安全啟動機制。熟悉關機流程更能協助您在維護窗口期進行平滑重啟或災難復原演練。建議將本文設定步驟整合至自動化部署腳本(如 Ansible Playbook),確保環境一致性與可重現性。