萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 啟動、停止、重啟的多種方法與官方推薦最佳實踐

三大操作對照表

操作systemd (現代 Linux)SysV init 傳統官方工具
啟動systemctl start mysqld / service mysqld start/etc/init.d/mysqld startmysqld_safe &
停止systemctl stop mysqld / service mysqld stop/etc/init.d/mysqld stopmysqladmin shutdown
重啟systemctl restart mysqld / service mysqld restart/etc/init.d/mysqld restart(無專用指令)

官方推薦:mysqld_safe

  • 官方提供的守護啟動腳本,會在背景持續監控 mysqld 進程。
  • 若進程意外退出(OOM、Segment Fault、誤殺),mysqld_safe 會自動重啟,保障高可用。
  • 支援將錯誤日誌導向指定檔案:mysqld_safe --log-error=/var/log/mysql/error.log &

各指令適用場景

場景建議指令理由
生產環境日常管理systemctl / service整合系統服務管理,支援開機自啟、狀態查詢、日誌整合
容器/極簡環境mysqld_safe無 systemd,需自我守護重啟
腳本/自動化關機mysqladmin shutdown走 MySQL 協議優雅關閉,觸發 checkpoint、刷新 buffer pool
緊急強制停止kill -TERM $(pidof mysqld)最後手段,可能導致崩潰恢復時間變長

常見坑點

  1. 雙重啟動:同時用 systemctl start 與 mysqld_safe 會衝突,擇一使用。
  2. 權限不足:非 root 執行 systemctl 需 sudo;mysqladmin 需帳號密碼或 .my.cnf 配置。
  3. 配置檔生效:修改 my.cnf 後必須 重啟(非 reload)才能生效靜態參數。

驗證啟動狀態

systemctl status mysqld          # systemd
service mysqld status            # SysV
mysqladmin -u root -p ping       # 協議層檢查,回傳 "mysqld is alive"
ps aux | grep mysqld             # 進程層確認

總結

現代 Linux 首選 systemctl 管理 MySQL 服務;容器或無 systemd 環境用 mysqld_safe 享受自動守護重啟;腳本化關機用 mysqladmin shutdown 優雅收尾。三種體系各有適用場景,切勿混用。

copyright © 萬盛學電腦網 all rights reserved