項目使用的mysql資料突然宕掉了,使用ps -ef|grep mysql ,沒有發現mysql的程序,隻有一些使用了mysql的項目的程序。
資料庫腳本目錄:/usr/bin/mysql
mysqld目錄:/etc/init.d/mysqld
1、檢查mysql服務狀态:
[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端口占用情況:
[root@ init.d]# netstat -apn|grep 3360
沒有占用3360端口的程序
[root@ init.d]# lsof -i:3360
也沒有占用3360端口的程序
4、關閉所有使用了該mysql的項目,然後執行:killall mysql
5、啟動資料庫:/etc/init.d/mysqld start
竟然啟動成功了!