阿里云ECS搭建的WordPress博客站点报“建立数据库连接时错误”的解决方案

一、现象描述

博主搭建这个博客大概一个月左右,还未有多少流量,但是最近10几天站点连续报“建立数据库连接时错误”问题,很是恼火啊,不知道是什么原因造成的,每次都要重启服务恢复,但是一到晚上就会重复报这个错误,痛定思痛,为了避免以后再次出现这个问题,博主必须要解决这个问题。

二、解决方案

博主在网上百度了很多文章,说的最多的就是内存不够用导致的,因为512M的内存跑三个wordpress都是没有问题的,更何况博主的是1G的内存跑一个wordpress,咋就老是报错呢?博主查看了一下自己的内存使用情况,如图:
阿里云ECS搭建的WordPress博客站点报“建立数据库连接时错误”的解决方案的照片 - 1
内存使用率接近80%,但是swap分区却啥都没有。默认阿里云的lnmp一键安装是不会安装swap的,需要自己手动创建,去阿里云官方咨询,阿里云官方也给出了增加swap分区的建议。
阿里云ECS搭建的WordPress博客站点报“建立数据库连接时错误”的解决方案的照片 - 3
那阿里工程师都这么说了,那博主就只能自己操作增加swap分区了。
在增加分区之前,咱们先了解一下什么是swap分区。wap分区即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用
添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。
准备工作:
在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。
运行以下命令:

swapon -s

如果返回的信息概要是空的,则表示 Swap 文件不存在。
检查文件系统
在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df -hal

检查返回的信息,还剩余足够的硬盘空间即可。
①增加swap交换文件
使用dd命令创建一个swap交换文件

dd if=/dev/zero of=/home/swap bs=1024 count=1024000

这样就建立一个/home/swap的分区文件,大小为1G。
制作为swap格式文件:

mkswap /home/swap

再用swapon命令把这个文件分区挂载swap分区

/sbin/swapon /home/swap

我们用free -m命令看一下,发现已经有交换分区了。
阿里云ECS搭建的WordPress博客站点报“建立数据库连接时错误”的解决方案的照片 - 5
但是重启系统后,swap分区又变成0了。
为防止重启后swap分区变成0,要修改/etc/fstab文件

vi /etc/fstab

在文件末尾(最后一行)加上

/home/swap swap swap default 0 0

这样就算重启系统,swap分区还是有的。
②删除swap交换文件
先停止swap分区

/sbin/swapoff /home/swap

删除swap分区文件

rm -rf /home/swap

删除自动挂载配置命令

vi /etc/fstab

删除/etc/fstab文件中的这一行

/home/swap swap swap default 0 0

这样就能把手动增加的交换文件删除了。
注意:
♦增加删除swap的操作只能使用root用户来操作。
♦装系统时分配的swap分区貌似删除不了。
♦swap分区一般为内存的2倍,但最大不超过2G

以上是如何添加交换文件,如果要添加一个交换分区,您可以参考阿里云提供的地址https://help.aliyun.com/knowledge_detail/42534.html来解决您遇到的问题。

博客地址:http://www.marsitman.com/wordpress/wp_notconn_db.html
版权声明:本文为博主原创文章,允许转载,但转载必须标明出处。

 

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!



点赞
  1. 祛斑吧说道:

    你好 为什么我根据这篇文章做了 还是会出现 并且free -m 查到的swap used 始终为0 是我哪里做的有问题吗

发表评论

电子邮件地址不会被公开。 必填项已用*标注