【问题标题】:mysql process cannot be stoppedmysql进程无法停止
【发布时间】:2013-01-04 16:58:11
【问题描述】:

我最近在 Ubuntu 12.04 OS 桌面上安装了 5.5.28-29.2 Percona Server (GPL),Release 29.2。我尝试使用不同的方法停止服务器:

- sudo /etc/init.d/mysql stop
- sudo kill -9 pid
- mysqladmin -u root -p shutdown

所有这些方法都会停止进程,但它会在进程终止后自动启动。我检查了 syslog (/var/log/syslog/) 并总是显示下一个跟踪:

Jan  4 17:50:44 kernel: [ 1915.494219] init: mysql main process (17311) killed by KILL signal
Jan  4 17:50:44 kernel: [ 1915.494245] init: mysql main process ended, respawning
Jan  4 17:50:44 kernel: [ 1915.500025] type=1400 audit(1357318244.557:48): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18458 comm="apparmor_parser"
Jan  4 17:50:46 /etc/mysql/debian-start[18501]: Upgrading MySQL tables if necessary.
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: Looking for 'mysql' as: /usr/bin/mysql
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: This installation of MySQL is already upgraded to 5.5.28, use --force if you still need to run mysql_upgrade
Jan  4 17:50:46 /etc/mysql/debian-start[18515]: Checking for insecure root accounts.
Jan  4 17:50:46 /etc/mysql/debian-start[18520]: Triggering myisam-recover for all MyISAM tables

你知道进程自动重启的原因吗? 提前谢谢你!

【问题讨论】:

    标签: mysql ubuntu percona


    【解决方案1】:

    我遇到了同样的问题。运行kill 命令会终止进程,但在我的情况下,它会在不同的进程 ID 下再次弹出。

    我能弄清楚如何永久阻止它的唯一方法是:

    sudo stop mysql
    

    希望对您有所帮助。

    来源:http://www.itfromscratch.com/how-to-stop-the-percona-mysql-server/

    【讨论】:

    • sudo stop mysqld 呢?
    • sudo /etc/init.d/mysql stop 呢?
    • 我也遇到了同样的问题,你的解决方案成功了服务器版本:5.5.38-0ubuntu0.14.04.1
    • @The New Guy 我试过sudo /etc/init.d/mysqld stop。没用。
    • sudo service mysql stop 呢?
    【解决方案2】:

    使用sudo service mysql stop 对我有用。

    【讨论】:

    • 主要问题是 ubuntu 中的服务标志,kill -9stop 可以与任何其他发行版一起使用。您必须查看 mysql 日志。它必须在底部说:/[path]/mysqld: Shutdown complete,否则您的守护程序已启动。您可以通过以下方式实时查看:tail -f /[path]/name.log。很好的答案。
    【解决方案3】:

    想要杀死所有的 mysql 实例?以 root 身份尝试:

     pkill mysqld;
    

    【讨论】:

    • 我也尝试使用 pkill 杀死所有实例,但它仍然启动。谢谢
    【解决方案4】:

    我在 Mac OS 上使用 Homebrew。 brew services stop mysql 没有 对我有用,但 sudo brew services stop mysql 对我有用。

    【讨论】:

      【解决方案5】:

      我在这里猜测,但 mysqld 可能通过 mysql_safe 初始化脚本启动,这将重新启动服务器。

      【讨论】:

      • 你是对的,mysqld 是通过 mysql_safe 初始化脚本启动的。但是我认为如果我使用 /etc/init.d/mysql stop 服务器不应该自动重启。谢谢
      【解决方案6】:

      对于那些事后看这几年的人来说,我遇到了类似的问题并且刚刚解决了它。

      似乎还有一个名为 orig_mysql.conf 的初始化脚本与 mysql.conf 文件一起存在于 /etc/init 目录中。这导致暴发户启动两个实例,显然当一个实例结束时它变得混乱。因此发生了连续的重生。

      我的解决方案:

      1. 如果可能,通过 upstart 停止 mysql:service mysql stop
      2. 删除其中一个 conf 文件(我删除了 /etc/init/orig_mysql.conf)。然后使用:telinit u 重新启动 init
      3. 手动终止所有剩余的 mysqld 进程。

      一旦您确认没有 mysqld 进程正在运行并且它们不再重生,请使用 service mysql start 重新启动 mysql。

      希望这对某人有所帮助。我花了两年时间才解决这个问题。

      【讨论】:

      • 谢谢!它有帮助。
      【解决方案7】:

      这可能不适用于这个特定的问题,但无论如何都可以。我检查了错误日志(“/var/log/mysql/error.log”),发现“explicit_defaults_for_timestamp=TRUE”导致了错误(“未知变量”)。所以我将它从 my.cnf ("/etc/mysql/my.cnf") 中删除,然后运行 ​​"sudo start mysql" 并且它已备份并运行。我希望这也有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        相关资源
        最近更新 更多