早上访问www.nginx.cn,页面提示
“建立数据库连接时出错”
机器环境跑的是nginx+php-fpm+mysql、出问题之前也没做过停止mysql进程的操作。
突然间数据库连接出错,
开始以为php的问题,那么我在命令行直接访问mysql
mysql -u root -p
1mysql-uroot-p
出现错误提示
2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
12002(HY000):Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'(111)
mysql进程自己退出了,使用如下指令确认mysql进程不在了。
ps -ef | grep mysql
1ps-ef|grepmysql
看不到mysql进程
mysql进程不在,尽快回复服务的想法,就是重启服务
/etc/init.d/mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start
1
2
3
4/etc/init.d/mysqlstart
Ratherthaninvokinginitscriptsthrough/etc/init.d,usetheservice(8)
utility,e.g.servicemysqlstart
启动不成功,提示我换一种方式启动,但是仍然启动失败
sudo service mysql start
start: Job failed to start
1
2sudoservicemysqlstart
start:Jobfailedtostart
然后查看配置文件里mysql的错误日志文件位置/var/log/mysql/error.log
里面什么都没有。
正当我挠头的时候,这时候我想起磁盘空间可能满了,查看了一下果然满了
df -ah
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 6.9G 6.7G 0 100% /
proc 0 0 0 - /proc
none 0 0 0 - /sys
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
1
2
3
4
5
6
7
8df-ah
FilesystemSizeUsedAvailUse%Mountedon
/dev/xvda26.9G6.7G0100%/
proc000-/proc
none000-/sys
none000-/sys/fs/fuse/connections
none000-/sys/kernel/debug
none000-/sys/kernel/security
删除无用日志文件后
/dev/xvda2 6.9G 5.8G 808M 88% /
proc 0 0 0 - /proc
none 0 0 0 - /sys
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
1
2
3
4
5
6/dev/xvda26.9G5.8G808M88%/
proc000-/proc
none000-/sys
none000-/sys/fs/fuse/connections
none000-/sys/kernel/debug
none000-/sys/kernel/security
mysql重启成功
service mysql start
mysql start/running, process 6908
1
2servicemysqlstart
mysqlstart/running,process6908
查看mysql是否在监听端口命令
netstat -tl | grep mysql
会看到如下类似内容
tcp 0 0 *:mysql *:* LISTEN
当你mysql突然退出,应用程序连接不上。
重启又不成功时,可以看看是不是磁盘空间否满了。