mysql进程无法停止

时间:2013-01-04 16:58:11

标签: mysql ubuntu percona

我最近在Ubuntu 12.04 OS桌面上安装了5.5.28-29.2 Percona Server(GPL),版本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

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

8 个答案:

答案 0 :(得分:61)

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

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

sudo stop mysql

希望有所帮助。

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

答案 1 :(得分:31)

使用sudo service mysql stop为我工作。

答案 2 :(得分:17)

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

 pkill mysqld;

答案 3 :(得分:4)

我在Mac OS上使用Homebrew。 brew services stop mysql 为我工作,但sudo brew services stop mysql做了。

答案 4 :(得分:3)

我想在这里猜测,但mysqld可能是通过mysqld_safe init脚本启动的,它将重启服务器。

答案 5 :(得分:3)

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

似乎有一个名为orig_mysql.conf的第二个init脚本,它与mysql.conf文件一起存在于/ etc / init目录中。这导致upstart启动两个实例,显然当一个实例结束时它感到困惑。正如此持续不断的重生。

我的解决方案:

  1. 如果可能,请通过upstart停止mysql:service mysql stop
  2. 删除其中一个conf文件(我删除了/etc/init/orig_mysql.conf)。然后使用:telinit u
  3. 重新启动init
  4. 手动终止任何剩余的mysqld进程。
  5. 一旦确认没有运行mysqld进程并且它们不再重生,请使用service mysql start重新启动mysql。

    希望这有助于某人。我花了两年时间来解决这个问题。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

您应该删除mysql.sock。这样再次运行mysqld服务将重新创建它。如果不是这种情况,只需在删除mysql.sock

后重新启动服务器