While I was looking for a solution to the same symptom, I found out there are a lot of things that can go wrong and prevent mysql(d) from starting. If you can manage to start it from the command line with the proper user:
sudo -u mysql mysqld
And that conversely it fails as a service:
root@my-linode:~# service mysql start
start: Job failed to start
Then check the upstart log in /var/log/upstart/mysql.log
. If you find the following error message:
[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
Then you've found the culprit. To fix it, specify the mysql user in /etc/mysql/my.cnf
user=mysql
Restart with start mysql
and you should be good.
Again, there are many possible cause to this error (apparmor, incorrect privileges on the socket file, insufficient disk space, insufficient memory during the upgrade to mention a few I stumbled upon). This is only one of them. Thanks to this guy.