项目使用的mysql数据突然宕掉了,使用ps -ef|grep mysql ,没有发现mysql的进程,只有一些使用了mysql的项目的进程。
数据库脚本目录:/usr/bin/mysql
mysqld目录:/etc//mysqld
1、检查mysql服务状态:
[root@ bin]# /usr/bin/mysql status
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/' (2)
[root@ ]# /etc//mysqld status
mysqld dead but subsys locked
对于“mysqld dead but subsys locked” 网上找的资料都是说安装完数据库后没初始化数据造成无法启动的,这里不适用。没办法只有自己摸索了。
2、检查mysql 的pid文件 和socket文件,发现对应目录下没有 这2文件(目录可以通过查看配置找到)
这里数据库pid和socket文件目录为:
pid-file:/var/run/mysqld/
socket:/var/lib/mysql/之前遇到过mysql无法启动,删除pid和socket文件 后就能启动了。
启动数据库:/etc//mysqld start 提示启动失败
查看日志 cat /var/log/,发现如下日志:
130708 12:36:04 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
130708 12:36:04 [ERROR] Do you already have another mysqld server running on port: 3306 ?
130708 12:36:04 [ERROR] Aborting
日志上提示端口被占用了
3、检查3360端口占用情况:
[root@ ]# netstat -apn|grep 3360
没有占用3360端口的进程
[root@ ]# lsof -i:3360
也没有占用3360端口的进程
4、关闭所有使用了该mysql的项目,然后执行:killall mysql
5、启动数据库:/etc//mysqld start
竟然启动成功了!