MySQL Server Won’t Start : PID File Errors

This is kind of a common problem and may have several reasons. Sometimes when we simply want to restart the MySQL Server, we can get such an error:
ERROR! MySQL server PID file could not be found!

First of all, always check if the /tmp partition is full. This can happen when MySQL can’t write to the /tmp partition to create a lock file.

$ df -h

Also, this may be because, somehow the /tmp partition has been cleared and the MySQL server is looking for the PID file there. So easy-peasy just create a new pid file and restart the server.
$ touch /tmp/mysql.sock
$ service mysqld restart
It can also help to check the status, sometimes it helps. For example sometimes you can get an error like this :
$ service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
Well, it’s kind of obvious, just remove the lock file and restart the server.
$ rm /var/lock/subsys/mysql
$ service mysqld restart
If none of these help, and you’re getting an error like this:
$ service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/mydomain.com.pid).
Then there might be a more complicated problem. Check the log file at /var/lib/mysql/mydomain.com.err
$ tail /var/lib/mysql/mydomain.com.err
120602 16:54:09 mysqld_safe mysqld from pid file /var/lib/mysql/mydomain.com.pid ended
This line tells us that we have a compatibility problem with some of our tables and mysql fails to start in safe mode. Now let’s change the way mysql starts to work around this situtation.
$ { echo “mysql_enable=\”YES\”"; echo “mysql_args=\”–skip-grant-tables –skip-networking\”"; } >> /etc/init/rc.conf
Time to restart
$ /etc/init.d/mysqld restart
You should a get successfull restart. Now try and upgrade the server.
$ mysql_upgrade
If it says you have the latest version, still force it.
$ mysql_upgrade –force
It will check every database if it’s ok. After that, we can return things to normal, comment out the last line we’ve added to /etc/init/rc.conf
$ sed -i ‘/mysql_args/s/^/#/’ /etc/init/rc.conf
$ service mysqld restart
Hope this helps.
  • 9771 Users Found This Useful
Was this answer helpful?

Related Articles

Setting time with NTP in LINUX

NTP (Network Time Protocol) could be used to set time synced with ntp clocks, to do this use the...

Linux version & Operating System info

LINUX Version Info To learn the architecture and kernel version info use the shell command...

Build PHP5.5 on CentOS 6.4 with MSSQL Support [cite]

Most of the yum repos doesn’t include PHP5.5.X on current releases for the time being. So...

Change Outgoing IP of Postfix Mail Server

This can get quite important when your mail server is blacklisted, or if you somehow want to...

Add New Hosting to a System Installed With Plugged.sh

If you use our LAMP installer script and want to add a new domain afterwards, we’ve created...