sudo systemctl stop mysql
命令可停止MySQL服务,也可用 sudo service mysql stop
,执行后建议用 sudo systemctl status mysql
确认服务状态。在Linux系统中停止MySQL服务是常见的操作,通常用于系统维护、配置更新或故障排查。为确保数据安全,操作前务必备份数据库,以下是详细方法,根据系统初始化工具(systemd或SysVinit)和MySQL版本选择合适方式:
使用 systemd 停止 MySQL(推荐,适用于大多数现代系统)
适用系统:CentOS 7/8、Ubuntu 16.04+、Debian 9+ 等使用 systemd
的系统。
步骤:
-
检查服务状态(确认MySQL服务名称):
sudo systemctl status mysql # Ubuntu/Debian sudo systemctl status mysqld # CentOS/RHEL
若输出显示
active (running)
,说明服务正在运行。 -
停止MySQL服务:
sudo systemctl stop mysql # Ubuntu/Debian sudo systemctl stop mysqld # CentOS/RHEL
-
验证是否停止:
sudo systemctl status mysql
成功停止后,输出显示
inactive (dead)
或Active: failed
。
使用 SysVinit 停止 MySQL(旧版系统)
适用系统:CentOS 6、Ubuntu 14.04 等使用 init.d
脚本的系统。
步骤:
-
停止服务:
sudo service mysql stop # Ubuntu/Debian sudo service mysqld stop # CentOS/RHEL
或
sudo /etc/init.d/mysql stop
-
验证状态:
sudo service mysql status
输出应显示
MySQL is stopped
。
通过 mysqladmin 命令停止(安全关闭数据库)
适用场景:需要优雅终止MySQL进程,避免数据损坏。
步骤:
-
使用MySQL管理员账户执行:
mysqladmin -u root -p shutdown
-u root
:以root用户操作(替换为实际管理员账号)。-p
:输入密码(执行后提示输入)。
-
验证:
ps aux | grep mysqld # 无mysqld进程即成功
强制终止进程(极端情况)
仅当上述方法失效时使用(可能造成数据丢失):
-
查找MySQL进程ID:
ps aux | grep mysqld
-
发送终止信号:
sudo kill -9 <PID> # 替换<PID>为实际进程号
常见问题解决
-
权限不足:
- 错误提示:
Failed to stop mysql.service: Access denied
- 解决:使用
sudo
执行命令。
- 错误提示:
-
服务无法停止:
- 原因:MySQL进程卡死或依赖冲突。
- 解决:
sudo systemctl kill mysqld # 强制终止 sudo systemctl reset-failed mysql # 重置失败状态
-
停止后自动重启:
- 检查是否启用自动恢复:
sudo systemctl disable mysql # 禁用开机自启(需时)
- 检查是否启用自动恢复:
关键注意事项
- 备份数据:停止前务必使用
mysqldump
备份数据库。 - 选择正确方法:
- 优先使用
systemctl
(现代系统)。 mysqladmin shutdown
是最安全的停止方式。
- 优先使用
- 生产环境谨慎操作:避免高峰时段停机,确保业务连续性。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/43923.html