首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

macOS 設定 MySQL 開機自動啟動:launchd plist 方案

     編輯:MySQL 資料庫相關知識

背景

macOS 現代版本推薦使用 launchd 管理守護進程,替代傳統 StartupItems。本文提供標準 .plist 配置讓 MySQL 開機自啟並異常重啟。

建立 Plist 檔案

sudo touch /Library/LaunchDaemons/com.mysql.mysqld.plist

編輯內容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>KeepAlive</key><true/>
    <key>Label</key><string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>  <!-- 建議使用 mysql 專用用戶,非 root -->
    </array>
    <key>RunAtLoad</key><true/>
    <key>StandardErrorPath</key><string>/var/log/mysql/error.log</string>
    <key>StandardOutPath</key><string>/var/log/mysql/output.log</string>
  </dict>
</plist>

關鍵說明:

  • KeepAlive:進程異常退出自動重啟
  • RunAtLoad:開機載入時立即啟動
  • --user=mysql:安全性最佳實踐,避免 root 權限運行
  • 日誌路徑需預先建立目錄與權限:sudo mkdir -p /var/log/mysql && sudo chown mysql:mysql /var/log/mysql

載入與驗證

# 載入並設定開機自啟
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

# 檢查狀態
sudo launchctl list | grep mysql

# 手動啟動/停止(不重開機)
sudo launchctl start com.mysql.mysqld
sudo launchctl stop com.mysql.mysqld

# 移除自啟
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

補充:MySQL 官方 DMG 內建啟動項對比

官方 MySQLStartupItem.pkg 安裝至 /Library/StartupItems/MySQLCOM,屬舊式機制,macOS 10.10+ 仍相容但不推薦新部署使用。launchd 方案更穩健、支援日誌重導向與資源限制。

小結

使用 launchd 管理 MySQL 是 macOS 現代部署的標準做法,配置簡單、功能完整,建議生產環境採用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved