首页 > 代码库 > 【随笔】nginx重启问题和mysql挂了的解决办法

【随笔】nginx重启问题和mysql挂了的解决办法

  租了一个阿里云服务器,然后需要一个nginx来处理一下静态文件的访问和动态文件的转发,头一天没有什么问题,第二次打开,各种问题就出来了!解决方法记录一下。。。。


  Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock

  

  表示无法通过/var/run/mysql/mysqld.sock来连接MySQL。

  先来看看mysqld.sock这个文件,mysqld.sock是链接MySQL服务器的文件,虽然只有0字节,不过至关重要。

  如果现在使用"find / -name mysqld.sock"命令来查找这个文件,结果是空的,说明不存在这个文件。原因其实很简单,mysql.sock文件是在MySQL服务启动后才会创建的一个临时文件,在MySQL服务关闭后就会被删除。所以我们首要的就是看看MySQL是否启动了。

  通过命令查看,结果是空的,说明MySQL服务确实没有启动,所以现在就剩下了一个问题,就是启动MySQL服务。

  启动MySQL服务的命令是"/etc/init.d/mysql start",如果启动不成功,可以用"ps | grep mysql"来查看一下是否有残存的mysql相关进程,如果有,kill掉这些进程,然后再启动。如果出现:

  

  说明启动成功。如果这时候再查找mysqld.sock文件,就会发现

  

  mysqld.sock出现了,问题自然就解决了。

  阿里云服务器MySQL服务莫名其妙在一个小时内挂了2次,找不到什么原因。。。。。只有出现了手动重启下。。。


  nginx重启后访问无法找到静态文件,访问权限不足

  nginx用以静态文件的访问以及动态文件的反向代理,关于nginx的配置,网上有很多,这里不多介绍了。不过今天碰到一个问题,在配置好重启完毕nginx后,访问主页发现index.html文件能正常访问,不过好多css、js文件却表示找不到。

  重新检查了好几次配置文件,均未发现问题,最后在一个帖子上发现了一个解决办法,虽然碰到的情况不一样,不过问题类型还是相同的。

  解决访问静态文件权限不足的问题:

    在/etc/nginx/nginx.conf文件的头一行,将use XXXX改为了use root 解决问题,use是用以配置nginx运行用户的。原先的配置是use www-date,在另一个服务器运行得很好,不过在阿里云服务器就不行,不知道是什么原因,不过问题是解决了。  


  nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)

  重启nginx时提示找不到nginx.pid文件,原因时在kill了nginx进程后丢失了nginx.pid文件,再次重启nginx时就会出现这个问题。

  网上有各种解决办法,不过还是没有解决问题,最后还是使用了一个老外的办法解决了这个问题。

  首先查找nginx.conf配置目录

  然后使用命令nginx -c /etc/nginx/nginx.conf 

  最后再重启nginx。/usr/sbin/nginx -s reload解决问题  

【随笔】nginx重启问题和mysql挂了的解决办法