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

如何停止Linux上的MySQL服务?

使用 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 的系统。
步骤

  1. 检查服务状态(确认MySQL服务名称):

    sudo systemctl status mysql   # Ubuntu/Debian
    sudo systemctl status mysqld  # CentOS/RHEL

    若输出显示 active (running),说明服务正在运行。

  2. 停止MySQL服务

    sudo systemctl stop mysql    # Ubuntu/Debian
    sudo systemctl stop mysqld   # CentOS/RHEL
  3. 验证是否停止

    sudo systemctl status mysql

    成功停止后,输出显示 inactive (dead)Active: failed

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


使用 SysVinit 停止 MySQL(旧版系统)

适用系统:CentOS 6、Ubuntu 14.04 等使用 init.d 脚本的系统。
步骤

  1. 停止服务:

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

    sudo /etc/init.d/mysql stop
  2. 验证状态:

    sudo service mysql status

    输出应显示 MySQL is stopped


通过 mysqladmin 命令停止(安全关闭数据库)

适用场景:需要优雅终止MySQL进程,避免数据损坏。
步骤

  1. 使用MySQL管理员账户执行:

    mysqladmin -u root -p shutdown
    • -u root:以root用户操作(替换为实际管理员账号)。
    • -p:输入密码(执行后提示输入)。
  2. 验证

    ps aux | grep mysqld  # 无mysqld进程即成功

强制终止进程(极端情况)

仅当上述方法失效时使用(可能造成数据丢失):

  1. 查找MySQL进程ID:

    ps aux | grep mysqld
  2. 发送终止信号:

    sudo kill -9 <PID>  # 替换<PID>为实际进程号

常见问题解决

  1. 权限不足

    • 错误提示:Failed to stop mysql.service: Access denied
    • 解决:使用 sudo 执行命令。
  2. 服务无法停止

    • 原因:MySQL进程卡死或依赖冲突。
    • 解决:
      sudo systemctl kill mysqld    # 强制终止
      sudo systemctl reset-failed mysql  # 重置失败状态
  3. 停止后自动重启

    • 检查是否启用自动恢复:
      sudo systemctl disable mysql  # 禁用开机自启(需时)

关键注意事项

  • 备份数据:停止前务必使用 mysqldump 备份数据库。
  • 选择正确方法
    • 优先使用 systemctl(现代系统)。
    • mysqladmin shutdown 是最安全的停止方式。
  • 生产环境谨慎操作:避免高峰时段停机,确保业务连续性。

引用说明:本文方法参考MySQL官方文档的服务管理指南及Linux系统管理最佳实践,操作时请根据实际环境调整命令参数。

0