我最近在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
您知道进程自动重启的原因吗? 提前谢谢!!
答案 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启动两个实例,显然当一个实例结束时它感到困惑。正如此持续不断的重生。
我的解决方案:
service mysql stop
telinit u
一旦确认没有运行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