首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 四種啟動方式詳解:mysqld、mysqld_safe、mysql.server、mysqld_multi

     編輯:MySQL 綜合教學

MySQL 四種啟動方式詳解:mysqld、mysqld_safe、mysql.server、mysqld_multi

從最基礎的 mysqld 到生產級的 mysqld_multi 多實例管理,掌握四種啟動方式的適用場景、配置差異與客戶端連接方法。

1. mysqld —— 核心服務進程

最原始啟動,前台運行,調試用。

# 啟動
./mysqld --defaults-file=/etc/my.cnf --user=root

# 客戶端連接
mysql --defaults-file=/etc/my.cnf
# 或指定 socket
mysql -S /tmp/mysql.sock

⚠️ 關閉終端即停止,**不適合生產**。

2. mysqld_safe —— 守護進程模式(推薦單實例生產)

Shell 腳本封裝,提供:
- 自動重啟(崩潰拉起)
- 錯誤日志重定向
- 核心文件生成控制

# 啟動(後台)
./mysqld_safe --defaults-file=/etc/my.cnf --user=root &

# 客戶端連接同 mysqld

✅ 生產環境單實例標準啟動方式。

3. mysql.server —— System V init 腳本

標準服務管理,支援 service/chkconfig。

# 安裝為服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
chkconfig --add mysql.server

# 管理
service mysql.server {start|stop|restart|status}

# 開機自啟
chkconfig mysql.server on

✅ 單實例生產環境服務化管理首選。

4. mysqld_multi —— 多實例統一管理

一個配置文件管多個實例(不同端口、datadir、socket)。

# 配置片段 /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = mysqladmin
password = mysqladmin

[mysqld3306]
port = 3306
socket = /tmp/mysql3306.sock
datadir = /usr/local/mysql/data

[mysqld3307]
port = 3307
socket = /tmp/mysql3307.sock
datadir = /usr/local/mysql/data2

授權管理帳號:

GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' IDENTIFIED BY 'mysqladmin' WITH GRANT OPTION;

操作:

# 啟動 3306-3307
./mysqld_multi --defaults-file=/etc/my.cnf start 3306-3307

# 停止
mysqladmin -S /tmp/mysql3306.sock shutdown

✅ 多實例部署標準工具。

對比總結表

方式適用場景守護進程服務管理多實例
mysqld調試、臨時測試❌❌❌
mysqld_safe單實例生產✅手動手動配置
mysql.server單實例生產(服務化)✅✅ systemd/SysV手動配置
mysqld_multi多實例生產✅統一管理✅ 原生支援

最佳實踐建議

  1. 單實例:mysql.server + systemd(CentOS 7+/Ubuntu 16+)
  2. 多實例:mysqld_multi 或 Docker/K8s 容器化
  3. 務必配置 --defaults-file 顯式指定配置,避免讀錯 my.cnf
  4. 生產環境禁用 --user=root,專用 mysql 用戶
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved