mysql server start failed
I am running ubuntu server. When I tried to login to mysql(which was running),I got the following error
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
But mysqld.sock file doesn't exist inside /var/run/mysqld
folder.
On executing ps aux | grep mysql
command,I realized that mysql server was not running.
I then tried to restart mysql server using
service mysql start
service mysql restart
/etc/init.d/mysql start
But,the start process failed in all 3 cases.
/var/log/mysql/mysql.log
and /var/log/mysql/mysql.err
files are empty.
But /var/log/error.log
shows following information:
140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting
140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
Solution 1:
Open a terminal(Ctrl+Alt+t) and do the following:
sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1
and comment out the line record_buffer=64M
in /etc/mysql/my.cnf
[1]
and then restart msyql using:
sudo service mysql restart
(Source)
Solution 2:
This solved my problem:
mkdir /var/run/mysqld
touch /var/run/mysqld/mysqld.sock
chown -R mysql /var/run/mysqld
/etc/init.d/mysql restart
Solution 3:
I solved the problem in the following way:
chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/
In another context, I faced it because the mysql daemon failed to start. So start daemon with command - mysqld start
and then try to start the service.
Solution 4:
I had the same error message and the same emptyness in the log files. In my config-file (my.cnf) I had specified that I wanted to use myisam tables, by adding this line in the [mysqld]-section:
default-table-type = myisam
After upgrading mysql it seems this causes mysql not to start. I have changed this to:
default-storage-engine = myisam
and now everything works fine.
Solution 5:
Increasing the available RAM by adding new Swap space might also help. Steps are here
Make sure that you create /swapfile of the size smaller than the available space shown by
df -h
For example for me output of df- h was:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.2G 6.3G 16% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 12K 492M 1% /dev
tmpfs 100M 336K 99M 1% /run
So I created using 2 G
sudo fallocate -l 2G /swapfile
And then just start the service
sudo /etc/init.d/mysql restart
Hope this helps. All the best.