Systemd Mysql 不会停止

Systemd Mysql 不会停止

升级到 15.04 后,我非常乐意了解 systemd。我认为一切都正常,只是我无法停止 mysql.service;systemctl 命令只是挂起,而 mysql 仍在运行。有没有人遇到过这种情况或可能知道发生了什么?

答案1

我遇到了同样的问题(升级到 15.04,使用官方文件和配置)。

我必须进行以下更改才能在系统重启/关闭时mysql手动停止守护进程并自动停止:sytemctl

  1. 让用户/etc/mysql/debian.cnf可读mysql

    sudo chgrp mysql /etc/mysql/debian.cnf; sudo chmod 640 /etc/mysql/debian.cnf
    
  2. 提供一个稍微修改过的mysql.service文件:

    sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
    sudo chmod 755 /etc/systemd/system/mysql.service
    
  3. 通过在编辑器中打开复制的文件提供明确的停止命令:

    sudo nano /etc/systemd/system/mysql.service
    

    并在该部分下添加以下行[Service]

    ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
    

    在 Nano 中,使用 Ctrl+O 保存(Linux 方式!),使用 Ctrl+X 退出。

  4. 使系统知道新的服务文件:

    sudo systemctl daemon-reload
    

答案2

我在使用 Ubuntu 15.10 桌面时遇到了同样的问题,并且找到了解决方法:

/etc/mysql/mysql.conf.d/mysqld.cnf 中的 log_error 参数已被注释掉。取消注释该参数后,systemd 可以顺利关闭 mysqld。

答案3

您的问题是thread_pool_size。如果它远高于核心/线程数,则除非使用mysqladmin shutdown命令,否则您将无法正常关闭。

例如:您有 2 核 CPU 和 4 个线程。如果您将其设置为 1-4 - 它将正常工作。如果您将其设置为 16(如许多“高性能”博客中所建议的那样),它将变得很差。

答案4

只是在复制的时候mysql.service你必须做一个chmod后续操作。

cp /lib/systemd/system/mysql.service /etc/systemd/system/
chmod 755 /etc/systemd/system/mysql.service

相关内容