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:
- Stop mysql via upstart if possible:
service mysql stop
- REMOVE one of the conf files (I removed /etc/init/orig_mysql.conf). Then restart init using:
telinit u
- 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.