mysql process cannot be stopped

2019-03-09 17:17发布

I have recently installed 5.5.28-29.2 Percona Server (GPL), Release 29.2 in a Ubuntu 12.04 OS Desktop. I have tried to stop the server using different methods:

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

All this methods stop the process, however it starts up automatically after it dies. I have checked syslog (/var/log/syslog/) and always shows me the next trace:

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

Do you know the reason why the process restarts automatically ? Thank you in advance!!

8条回答
太酷不给撩
2楼-- · 2019-03-09 17:45

Want to kill all mysql instances? Try as root:

 pkill mysqld;
查看更多
贪生不怕死
3楼-- · 2019-03-09 17:46

This might not apply to this particular problem but here it goes anyways. I checked the error log ("/var/log/mysql/error.log") and saw that "explicit_defaults_for_timestamp=TRUE" was causing an error ("Unknown variable"). So I removed it from my.cnf ("/etc/mysql/my.cnf"), and ran "sudo start mysql" and it was back up and running. I hope this helps as well!

查看更多
Root(大扎)
4楼-- · 2019-03-09 17:46

You should just remove mysql.sock. This way running mysqld service again will recreate it. If its not the case, simply restart the server after removing mysql.sock

查看更多
混吃等死
5楼-- · 2019-03-09 17:49

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

查看更多
倾城 Initia
6楼-- · 2019-03-09 17:59

I was having this exact same problem. Running the kill command would kill the process, but in my case it would keep popping up again under a different process ID.

The only way I could figure out how to stop it for good was this:

sudo stop mysql

Hope that helps.

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

查看更多
仙女界的扛把子
7楼-- · 2019-03-09 18:00

For those looking at this years after the fact, I had a similar issue and just solved it.

Seems there was a second init script called orig_mysql.conf that existed in the /etc/init directory along with the mysql.conf file. This caused upstart to start two instances and apparently it got confused when one was ended. As such a continuous respawning took place.

My solution:

  1. Stop mysql via upstart if possible: service mysql stop
  2. REMOVE one of the conf files (I removed /etc/init/orig_mysql.conf). Then restart init using: telinit u
  3. Kill off any remaining mysqld processes manually.

Once you confirm you have no mysqld processes running and that they are not respawning any longer, restart mysql with service mysql start.

Hope this helps someone. It took me two years to solve this.

查看更多
登录 后发表回答