虚拟机下的centos断电(非正常关机)后mysql启动不了

作者: 小新

发布于 2019-12-31 | 最后更新 2019-12-31


在windows2003安装了vbox来部署centos。

但无法完美设置开机启动虚拟机里的系统。

只能把启动脚本放到用户的启动项里。

server.bat
 
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "myserver" --type headless

这样启动是没有问题,如果主机重启就会造成虚拟机里的系统非正常关机。

centos非正常关机后,mysql竟然启动不了,问题如下:

Another MySQL daemon already running with the same unix socket

原因是,在mysql安装目录里有一个mysql.sock文件。

这个文件在mysql启动时创建的,mysql关闭时删除。

那如果是非正常关机,mysql就没有机会去删除之个文件。

当这个文件还存在时,mysql就启动不了,提示上面的错误。

奇怪的时,在google和百度竟然没有这问题的解决方案。

那我就只能使用自己的方法去解决,就是在mysql启动前,判断如果mysql.sock存在就删除掉。

/etc/rc.sysinit
 
# Clean up mysql sock
if [ -x /var/lib/mysql/mysql.sock ]; then
    rm -f /var/lib/mysql/mysql.sock
fi

经过几次的断电(非正常关机),mysql都能正常启动。

这个问题总会解决了。