mysql process cannot be stopped

送分小仙女□ 提交于 2019-12-03 05:36:37

问题


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!!


回答1:


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/




回答2:


Using sudo service mysql stop worked for me.




回答3:


Want to kill all mysql instances? Try as root:

 pkill mysqld;



回答4:


I'm using Homebrew on Mac OS. brew services stop mysql did not work for me, but sudo brew services stop mysql did.




回答5:


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




回答6:


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.




回答7:


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!



来源:https://stackoverflow.com/questions/14161415/mysql-process-cannot-be-stopped

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!