当前位置:首页 > Linux > 正文

如何在Linux上停止MySQL服务器?

要停止MySQL服务器,在终端执行命令: sudo systemctl stop mysql(适用于使用systemctl的系统),或使用旧版init.d脚本: sudo /etc/init.d/mysql stop,操作需管理员权限。

停止MySQL的推荐方法

使用 systemctl(适用于Systemd系统)

适用系统:Ubuntu 16.04+、CentOS 7+、Debian 8+ 等主流现代发行版。
步骤

# 停止MySQL服务
sudo systemctl stop mysqld        # CentOS/RHEL
sudo systemctl stop mysql         # Ubuntu/Debian
# 验证状态(显示"inactive"表示成功)
sudo systemctl status mysqld

优势:官方推荐方式,通过系统服务管理器操作,安全可靠。

使用 service 命令(适用于SysVinit系统)

适用系统:旧版Debian/Ubuntu或CentOS 6。
步骤

sudo service mysql stop       # Ubuntu/Debian
sudo service mysqld stop      # CentOS 6

通过 mysqladmin 工具(优雅停止数据库)

适用场景:需以MySQL管理员身份安全关闭,避免数据损坏。
步骤

如何在Linux上停止MySQL服务器?  第1张

mysqladmin -u root -p shutdown
  • -u root:替换为有权限的管理员账户(如非root)。
  • -p:输入该账户密码。
    关键作用:发送关闭信号到MySQL进程,等待所有操作完成后再停止,确保事务完整性。

操作注意事项

  1. 备份优先
    停止前务必备份数据(尤其生产环境):

    mysqldump -u root -p --all-databases > backup.sql
  2. 权限要求
    所有命令需sudoroot权限,否则报错Access denied

  3. 验证是否成功停止

    • 检查进程是否存在:
      ps aux | grep mysqld   # 无结果即停止
    • 尝试登录(应失败):
      mysql -u root -p       # 提示"Can't connect to server"

常见问题解决

  • 问题1:拒绝停止(如依赖进程占用)
    强制终止(不推荐,仅紧急使用):

    sudo kill -9 $(pgrep mysqld)  # 强制结束进程
    sudo systemctl stop mysql     # 再尝试正常停止
  • 问题2:重启后自动启动
    禁用开机自启(如需长期停止):

    sudo systemctl disable mysqld
  • 问题3:权限不足
    确保当前用户在sudoers列表,或用su - root切换至root。


安全警告

  • 禁止直接杀进程(如kill -9),可能导致数据丢失或表损坏。
  • 首选systemctlmysqladmin shutdown,保证事务安全结束。
  • 测试环境操作熟练后再应用于生产服务器。

总结建议

  • 现代Linux系统:优先使用 sudo systemctl stop mysql/mysqld
  • 脚本或维护任务:用 mysqladmin shutdown 实现精细化控制。
  • 操作后通过 systemctl status 验证状态,确保服务完全停止。

引用说明:本文方法参考MySQL官方文档服务管理指南及Linux man手册,遵循MySQL最佳实践,确保操作权威性,对于非常规系统(如容器环境),请查阅对应平台文档。

0