Today I did a fresh install of ubuntu 12.04 and went about setting up my local development environment. I installed mysql and edited /etc/mysql/my.cnf
to optimise InnoDB but when I try to restart mysql, it fails with a error:
[20:53][tom@Pochama:/var/www/website] (master) $ sudo service mysql restart
start: Job failed to start
The syslog reveals there is a problem with the init script:
> tail -f /var/log/syslog
Apr 28 21:17:46 Pochama kernel: [11840.884524] type=1400 audit(1335644266.033:184): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=760 comm="apparmor_parser"
Apr 28 21:17:47 Pochama kernel: [11842.603773] init: mysql main process (764) terminated with status 7
Apr 28 21:17:47 Pochama kernel: [11842.603841] init: mysql main process ended, respawning
Apr 28 21:17:48 Pochama kernel: [11842.932462] init: mysql post-start process (765) terminated with status 1
Apr 28 21:17:48 Pochama kernel: [11842.950393] type=1400 audit(1335644268.101:185): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=811 comm="apparmor_parser"
Apr 28 21:17:49 Pochama kernel: [11844.656598] init: mysql main process (815) terminated with status 7
Apr 28 21:17:49 Pochama kernel: [11844.656665] init: mysql main process ended, respawning
Apr 28 21:17:50 Pochama kernel: [11845.004435] init: mysql post-start process (816) terminated with status 1
Apr 28 21:17:50 Pochama kernel: [11845.021777] type=1400 audit(1335644270.173:186): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=865 comm="apparmor_parser"
Apr 28 21:17:51 Pochama kernel: [11846.721982] init: mysql main process (871) terminated with status 7
Apr 28 21:17:51 Pochama kernel: [11846.722001] init: mysql respawning too fast, stopped
Any ideas?
Things I tried already:
I googled and found a Ubuntu bug with apparmor (https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/970366), I changed apparmor from enforce mode to complain mode:
sudo apt-get install apparmor-utils
sudo aa-complain /usr/sbin/mysqld
sudo /etc/init.d/apparmor reload
but it didn't help. I still can't start mysql.
I also thought the issue may be because the InnoDB logfiles were a different size than mysql was expecting. I removed the innodb log files before restarting using: sudo mv /var/lib/mysql/ib_logfile* /tmp
. No luck though.
Workaround: I re-installed 12.04, made sure not to touch /etc/mysql/my.cnf
in any way. Mysql is working so I can get on with what I need to do. But I will need to edit it at some point - Hopefully I'll have figured out a solution, or this question will have been answered by that point...
I finally figured out the issue. Basically, the definition of some parameters has been removed from the previous version of mysql and has been replaced with different names. To fix, in /etc/mysql/my.cnf, replace:
with:
This is the associated launchpad bug report: https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/958120.
Or easily run:
But make sure there's no old mysql version installation installed, if there was please remove:
Innodb has a default setting (innodb_buffer_pool_size) which is set to 128M - this may be too large for your server (especially if you're using a small Amazon EC2 AMI - which I was) The fix that worked for me was to add the following line to
/etc/mysql/my.cnf
I wrote about this fix over here http://www.mlynn.org/2012/07/mysql-5-5-on-ubuntu-12-04-job-failed-to-start
I had a similar problem. It was frustrating because I couldn't see any error logs indicating what the problem was.
In my case, the value I had set for innodb_buffer_pool_size was too large for the memory of the server.
I found this out by running mysqld directly as the mysql user.
This way you actually see the error output.
I also had a similar problem. The items below say they have been removed from mysql server 5.5.
If you have them in your
my.cnf
, it won't start. Comment them out with#
.(Info derived from : http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html)
The options affected are shown in this list:
It seems to boil down to errors in the MySQL configuration, located in
/etc/mysql/my.cnf
and files in/etc/mysql/conf.d/
.In my case it was a wrong
bind-address
value, because the IP address of my machine had changed and MySQL couldn't bind anymore. Feel free to rea more on this in this blog article.A good way to debug the failures in the post-start process (
/etc/init/mysql.conf
) is to check the upstart logs:That gave me a socket error:
In my case it was caused by a missing
user
setting under the[mysqld]
group inmy.cnf
I had the same issues, for me the
bind-address
was set improperly in my/etc/mysql/my.cnf
file. So it seems anything that isn't right in the my.cnf can cause this issue. I haven't found anything in the logs that indicated this as the issue.After an automatic update to mysqld-5.5.53 ubuntu 14.04.1, mysql would not start. These lines showed up in my syslog:
The problem was solved by creating this directory:
Check the
/tmp
permissions. I had this problem, after many time googleing and restarts, i found out that/tmp
permissions was 755.I change it to 777 and
mysql
start well.My problem was 0% of free space! Double check :-)