windows上用net start/stop控制mysql服务必须先用sc queryex查准真实服务名(如mysql80),再以管理员身份执行;linux需用systemctl list-unit-files确认服务名是mysql还是mysqld;macos推荐brew services管理;启动后须验证进程、端口和连接。

Windows 上用 net start/stop 控制 MySQL 服务必须确认服务名
安装完 MySQL 后,它默认注册为 Windows 服务但不会自启;直接运行 net start mysql 很可能失败,因为实际服务名不是 mysql。常见真实名称包括 mysql80、mysql57 或 MySQL(大小写敏感)。
查准服务名最可靠的方式是执行:sc queryex type= service state= all | findstr MySQL
输出中 NAME: 后面那一串才是你要用的名称。
- 启动:必须以管理员身份运行命令提示符或 PowerShell,再执行
net start mysql80 - 停止:对应执行
net stop mysql80,输错名称会报“服务名无效” - 如果提示“服务不存在”,说明没注册成功,需先进入 MySQL 的
bin目录,运行mysqld --install mysql80
Linux 用 systemctl 启停 MySQL 要分清服务名是 mysql 还是 mysqld
Ubuntu/Debian 系通常用 mysql,CentOS/RHEL 系多用 mysqld。别猜,先运行:systemctl list-unit-files | grep -i sql
看输出里启用的是哪个单元。
启动后务必验证是否真运行,仅执行 systemctl start mysql 不等于服务就活了。
- 检查状态:
systemctl status mysql,看到Active: active (running)才算成功 - 若卡在
activating,大概率是配置文件语法错误或 3306 端口被占 - 别用
/etc/init.d/mysql start—— 新系统里这只是systemctl的包装器,绕过它容易导致状态不同步
macOS 上 brew services 是最稳的管理方式
Homebrew 安装的 MySQL 默认不自启,brew services 是官方推荐路径,比手动调 mysql.server 更可靠,自动处理日志和依赖。
手动运行 mysql.server start 前,得确保该脚本在 PATH 里,或者 cd 到 MySQL 安装目录下的 support-files 子目录。
- 开机自启:
brew services start mysql - 仅本次启动:
mysql.server start - 停止:
brew services stop mysql或mysql.server stop - 如果
brew services报Service `mysql` is not currently loaded,说明不是 brew 安装的,得改用mysql.server脚本
连不上 localhost?90% 是服务根本没起来,不是连接参数错了
执行完启动命令后看到“请求已完成”就以为成了,这是最大误区。真正要验证的是服务进程和端口监听状态。
启动后立刻做三件事:
- 运行
mysql -u root -p -h 127.0.0.1—— 用 IP 地址而非localhost,避免走 socket 文件路径歧义 - 查进程:
ps aux | grep mysqld,确认主进程存在且没立即退出 - 查端口:
sudo netstat -tulnp | grep :3306,确认 3306 正在监听
如果这三项里有任何一项失败,说明服务没真正跑起来,得回看日志(Windows 在事件查看器,Linux 在 /var/log/mysql/error.log 或 journalctl -u mysql)—— 大多数问题都藏在日志第一行。











