🔧 MySQL服务管理(Windows/Linux/Docker)
适用人群:需要管理MySQL服务的运维人员
阅读时间:约10分钟
目标:掌握MySQL服务的启动、停止、重启、状态查看
一、Windows服务管理
1.1 使用服务管理器(图形界面)
步骤:
1. 按 Win + R,输入 services.msc
2. 找到 MySQL80(或你设置的服务名)
3. 右键 → 启动/停止/重新启动
1.2 使用命令行(推荐)
# 查看服务状态
sc query MySQL80
# 或使用 net 命令
net start | findstr MySQL
# 启动服务
net start MySQL80
# 停止服务
net stop MySQL80
# 重启(先停后启)
net stop MySQL80 && net start MySQL80
1.3 使用MySQL自带工具
# 进入MySQL安装目录
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
# 启动
mysqld --console
# 或使用 mysqld-opt(优化版)
mysqld-opt --console
1.4 设置开机自启
# 设置自动启动
sc config MySQL80 start= auto
# 设置手动启动
sc config MySQL80 start= demand
# 禁用服务
sc config MySQL80 start= disabled
二、Linux服务管理
2.1 systemctl(推荐,CentOS 7+/Ubuntu 16.04+)
# 查看状态
sudo systemctl status mysqld
# 或
sudo systemctl status mysql
# 启动服务
sudo systemctl start mysqld
# 停止服务
sudo systemctl stop mysqld
# 重启服务
sudo systemctl restart mysqld
# 重新加载配置(不中断服务)
sudo systemctl reload mysqld
# 设置开机自启
sudo systemctl enable mysqld
# 取消开机自启
sudo systemctl disable mysqld
# 查看是否开机自启
sudo systemctl is-enabled mysqld
2.2 service(旧系统)
# 查看状态
sudo service mysqld status
# 启动
sudo service mysqld start
# 停止
sudo service mysqld stop
# 重启
sudo service mysqld restart
2.3 直接使用mysqld_safe
# 启动(后台运行)
mysqld_safe --user=mysql &
# 停止(使用mysqladmin)
mysqladmin -u root -p shutdown
三、Docker服务管理
3.1 基本管理命令
# 查看容器状态
docker ps -a | grep mysql
# 启动容器
docker start mysql8
# 停止容器
docker stop mysql8
# 重启容器
docker restart mysql8
# 查看容器详情
docker inspect mysql8
3.2 容器内的MySQL服务
# 进入容器
docker exec -it mysql8 bash
# 在容器内管理MySQL
service mysql status
service mysql stop
service mysql start
# 或直接执行MySQL命令
docker exec -it mysql8 mysql -u root -p
3.3 Docker Compose管理
# 启动
docker-compose up -d
# 停止
docker-compose down
# 重启
docker-compose restart
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f mysql
四、查看MySQL运行状态
4.1 查看进程
# Linux
ps aux | grep mysql
ps -ef | grep mysqld
# 查看MySQL进程详情
pgrep -a mysqld
4.2 查看端口
# Linux
netstat -tlnp | grep 3306
ss -tlnp | grep 3306
# Windows
netstat -ano | findstr 3306
4.3 MySQL内部状态
-- 登录MySQL后执行
SHOW STATUS;
-- 查看运行时间
SHOW STATUS LIKE 'Uptime';
-- 查看连接数
SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Max_used_connections';
-- 查看查询数
SHOW STATUS LIKE 'Questions';
-- 查看服务状态(Linux)
\! systemctl status mysqld
五、常见问题排查
5.1 服务无法启动
# 查看错误日志
# Linux
sudo tail -50 /var/log/mysqld.log
# Windows
type "C:\ProgramData\MySQL\MySQL Server 8.0\Data\*.err"
# Docker
docker logs mysql8
5.2 端口被占用
# 查看端口占用
# Linux
sudo lsof -i :3306
sudo netstat -tlnp | grep 3306
# Windows
netstat -ano | findstr 3306
# 找到PID后
tasklist | findstr PID
5.3 权限问题
# Linux检查数据目录权限
ls -la /var/lib/mysql/
# 修复权限
sudo chown -R mysql:mysql /var/lib/mysql/
sudo chmod 750 /var/lib/mysql/
六、服务管理速查表
| | | |
|---|
| sc query MySQL80 | systemctl status mysqld | docker ps |
| net start MySQL80 | systemctl start mysqld | docker start mysql8 |
| net stop MySQL80 | systemctl stop mysqld | docker stop mysql8 |
| net stop MySQL80 && net start MySQL80 | systemctl restart mysqld | docker restart mysql8 |
| sc config MySQL80 start= auto | systemctl enable mysqld | --restart=always |
七、小结
✅ MySQL服务管理方法已掌握
关键要点:
- Windows:
net start/stop MySQL80 - Linux:
systemctl start/stop/restart mysqld - Docker:
docker start/stop/restart mysql8
下一篇:MySQL默认端口与安全设置
作者:专业技能小助手 | MySQL系列 S1-06
微信公众号首发