项目使用的mysql数据突然宕掉了,使用ps -ef|grep mysql ,没有发现mysql的进程,只有一些使用了mysql的项目的进程。
数据库脚本目录:/usr/bin/mysql
mysqld目录:/etc/init.d/mysqld
1、检查mysql服务状态:
代码语言:javascript复制[root@ bin]# /usr/bin/mysql status
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@ init.d]# /etc/init.d/mysqld status
mysqld dead but subsys locked
对于“mysqld dead but subsys locked” 网上找的资料都是说安装完数据库后没初始化数据造成无法启动的,这里不适用。没办法只有自己摸索了。
2、检查mysql 的pid文件 和socket文件,发现对应目录下没有 这2文件(目录可以通过查看my.cnf配置找到) 这里数据库pid和socket文件目录为:
pid-file:/var/run/mysqld/mysqld.pid socket:/var/lib/mysql/mysql.sock
之前遇到过mysql无法启动,删除pid和socket文件 后就能启动了。
启动数据库:/etc/init.d/mysqld start
提示启动失败
查看日志 cat /var/log/mysqld.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端口占用情况:
代码语言:javascript复制[root@ init.d]# netstat -apn|grep 3360
[root@ init.d]# lsof -i:3360
4、关闭所有使用了该mysql的项目,然后执行:killall mysql
5、启动数据库:/etc/init.d/mysqld start
竟然启动成功了!