Mysql po upgradu nenastartuje

U CentOS 6 se po upgradu může stát, že mysql ani po korektním restartu nenastartuje, a objeví se chyba:

 Another MySQL daemon already running with the same unix socket.

a to i přestože databáze neběží a není vidět v processlistu. Problém je způsoben tím, že se při vypnutí databáze nesmazal socket /var/lib/mysql/mysql.sock. Jednorázové řešení je smazat socket a databázi nastartovat znovu. Trvalé řešení je zajistit, aby se při startu kontrolovala existence socketu a odstranit ho v příladě, že není smazán. Startovací skript v /etc/init.d/mysqld je možné upravit například takto:
  1. zakomentovat tyto řádky v sekci start

    if [ -S "$socketfile" ] ; then
        echo "Another MySQL daemon already running with the same unix socket."
        action $"Starting $prog: " /bin/false
        return 1
    fi
  2. nahradit je

    if [ -S "$socketfile"  ] && [ ! -f "mypidfile"  ] ; then
        echo "Socket existuje, ale neexistuje pidfile.Mazu socket a startuji databazi"
        rm -f "$socketfile"
    fi

    (oproti prvnímu případu navíc se provádí kontrola existence souboru s PID procesu). Pokud databáze neběží a existuje socket, je smazán. Skript pak dále pokračuje ve spuštění databáze. Hlášeni na obrazovku (echo "Socket existuje, ale neexistuje pidfile.Mazu socket a startuji databazi") není nezbytné a lze smazat/zakomentovat.