Homebrew安装MySQL:brew services start与mysql.server start的差异疑问
为什么
brew services start mysql和mysql.server start的服务状态显示不同? 嘿,这个问题我之前折腾MySQL的时候也碰到过,其实核心是这两个启动方式的底层逻辑完全不一样,咱们拆开说:
brew services start mysql:Homebrew 官方服务管理渠道
这个命令是走 Homebrew 自带的服务管理体系启动 MySQL 的,它会帮你做这些事:- 在 macOS 的 LaunchDaemon(或 LaunchAgent,取决于你的配置)目录下生成对应的 plist 配置文件,把 MySQL 注册成系统级的受控服务
- 不仅启动当前的 MySQL 进程,还会默认设置开机自动启动
- 所有操作都会被 Homebrew 的服务追踪系统记录,所以你用
brew services list查看时,能看到它明确的运行状态(比如started)
mysql.server start:MySQL 原生启动脚本
这个是 MySQL 自己带的启动脚本,本质上就是直接调用 MySQL 的二进制文件拉起进程,和 Homebrew 的服务管理完全是两条线:- 它不会生成任何和系统服务相关的配置,也不会设置开机自启
- Homebrew 的服务管理根本感知不到这个进程的存在,所以哪怕 MySQL 实际在运行,你用
brew services list查看时,状态还是会显示stopped - 如果你重启电脑,这个进程不会自动恢复,得手动再跑一次
mysql.server start
简单总结:一个是通过 Homebrew 的“正规军”管理服务,状态会被统一追踪;一个是直接启动进程的“独立操作”,Homebrew 完全不认这个状态,所以两者在服务状态显示上会有差异。
内容的提问来源于stack exchange,提问作者jwkoo
相关产品推荐
相关产品推荐

