| 方式 | 適用平台 | 特點 |
mysqld & | 所有 | 前台/後台直啟,無自動重啟、無錯誤日誌重導 |
safe_mysqld & | Unix/Linux | 自動定位 basedir/datadir、重導 stderr 至錯誤日誌、進程死掉自動重啟、支援 --user 指定運行身分 |
建議: 生產環境優先使用 safe_mysqld。
2. mysql.server 腳本管理 (Unix/Linux 標準)
位置
- 二進制包:
share/mysql/mysql.server
- 原始碼:
support-files/mysql.server
- RPM:
/etc/rc.d/init.d/mysql (已改名)
操作
mysql.server start
mysql.server stop
自動啟動配置
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --add mysql
# 或手動建立鏈接
ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S99mysql
指定運行用戶
編輯腳本修改 mysql_daemon_user=root → mysql,或在 /etc/my.cnf [mysql.server] 區段設定 user=mysql。
3. mysqladmin 遠程控制 (跨平台通用)
mysqladmin shutdown # 關機
mysqladmin reload # 重載授權表 (平滑重啟)
mysqladmin -u root -p shutdown # 帶密碼
mysqladmin --help # 完整選項
優點:無需 root 登入伺服器、支援遠程、適用所有安裝類型。
4. Windows 系統服務
# 安裝為服務
mysqld-nt --install
# my.ini 配置 basedir
[mysqld]
basedir = D:/MySQL
# 服務控制
NET START mysql
NET STOP mysql
註:服務模式下不可直接傳遞 mysqld 參數,需全靠 my.ini。
5. 關鍵啟動選項 (/etc/my.cnf 或 c:/my.cnf)
| 選項 | 說明 |
user | 運行用戶 (配合 mysql.server) |
log-error | 錯誤日誌路徑 |
log-bin | Binlog 啟用與路徑 (主從必備) |
skip-grant-tables | 跳過權限 (緊急救援) |
socket | Unix Socket 路徑 (多實例隔離) |
port | TCP 埠 (多實例隔離) |
常見坑點
safe_mysqld 以 root 啟動後,再以普通用戶啟動會報 Access denied (錯誤日誌擁有者衝突) → 刪除錯誤日誌重試。
- 非標準安裝路徑必須指定
--basedir 或配置 my.cnf。
- RPM 安裝已內建
chkconfig 整合,勿重複手動建立鏈接。
熟練掌握多種啟停方式,才能在故障搶修、版本升級、遷移擴容等場景游刃有餘。
- 上一篇文章: MySQL 導致 CPU 100% 真兇:PHP 長連線未關閉,補上 mysql_close 瞬間降溫
- 下一篇文章: MySQL 表鎖定機制詳解:內部鎖與外部鎖、檢查修復協議、LOCK TABLES 實戰語法
Copyright ©
程式碼之家 All Rights Reserved