30

我最近在 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

你知道进程自动重启的原因吗?先感谢您!!

4

7 回答 7

60

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

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

sudo stop mysql

希望有帮助。

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

于 2013-04-11T23:34:08.997 回答
32

使用sudo service mysql stop对我有用。

于 2014-01-27T13:05:12.197 回答
17

Want to kill all mysql instances? Try as root:

 pkill mysqld;
于 2013-01-04T17:02:13.403 回答
6

我在 Mac OS 上使用 Homebrew。brew services stop mysql对我不起作用,但sudo brew services stop mysql确实如此。

于 2017-10-25T12:41:53.370 回答
2

I'm going to guess here, but mysqld might be started via the mysql_safe init script, which will restart the server.

于 2013-01-04T17:01:11.243 回答
2

对于那些事后看这几年的人,我有一个类似的问题,只是解决了它。

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

我的解决方案:

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

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

希望这可以帮助某人。我花了两年时间解决这个问题。

于 2016-02-27T02:57:02.450 回答
0

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

于 2016-02-16T03:57:17.687 回答