在 Unix 與 NetWare 系統上,官方推薦使用 mysqld_safe 啟動 mysqld 服務進程。它增加了關鍵安全特性:錯誤時自動重啟服務、運行時資訊寫入錯誤日誌、進程監護等。舊版符號鏈接 safe_mysqld 已棄用,未來版本將移除。
mysqld-max(若存在),否則啟動 mysqldmysqld-max 會導致啟動錯誤版本,需手動清理--mysqld 或 --mysqld-version 顯式指定啟動程序從選項文件的以下區塊讀取參數(優序遞減):
[mysqld][server][mysqld_safe][safe_mysqld](相容舊版,建議重命名)| 參數 | 說明 |
|---|---|
--help | 顯示幫助並退出 |
--autoclose | NetWare 專用:關閉時自動關閉視窗 |
--basedir=path | MySQL 安裝根目錄路徑 |
--core-file-size=size | 核心轉儲文件大小限制,傳遞給 ulimit -c |
--datadir=path | 資料目錄路徑 |
--defaults-extra-file=path | 額外讀取的配置文件,必須為第一個參數 |
--defaults-file=path | 替代預設配置文件,必須為第一個參數 |
--ledir=path | 包含 mysqld 執行檔的目錄,顯式指定服務器位置 |
--log-error=path | 錯誤日誌文件路徑 |
--mysqld=prog_name | 指定啟動的服務器程序名(在 ledir 目錄下) |
--mysqld-version=suffix | 指定服務器程序後綴,如 max 啟動 mysqld-max |
--nice=priority | 透過 nice 設定進程調度優先級 |
--no-defaults | 不讀取任何選項文件,必須為第一個參數 |
--open-files-limit=count | 最大打開文件數,傳遞給 ulimit -n,需 root 權限生效 |
--pid-file=path | 進程 ID 文件路徑 |
--port=port_num | TCP/IP 監聽端口(≥1024,除非以 root 運行) |
--skip-character-set-client-handshake | 忽略客戶端字符集,使用服務器預設(MySQL 4.0 行為) |
--socket=path | Unix 本地連接套接字文件路徑 |
--timezone=zone | 設定 TZ 環境變數 |
--user={user_name|user_id} | 以指定系統用戶運行 mysqld(非 MySQL 用戶) |
# 正確:配置文件參數優先 mysqld_safe --defaults-file=/etc/my.cnf --port=3306 # 錯誤:端口在前會導致配置文件不被讀取 mysqld_safe --port=3306 --defaults-file=/etc/my.cnf
mysqld_safe 期望滿足以下任一條件:
bin/ 與 data/,源碼分發版查找 libexec/ 與 var//usr/local/libexec、/usr/local/var)若均失敗,可顯式指定 --ledir 與 --datadir。
作為 NLM(NetWare Loadable Module)運行,額外執行:
host_name.errhost_name.safemy.cnf 的 [mysqld_safe] 區塊配置,避免直接修改腳本mysqld_safe,若有修改請備份--log-error、--pid-file、--user=mysql 等核心參數