技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

WordPress网站报错Error establishing a database connection(Linux服务器MySQL 服务自动停止的解决方法)

数据库 abel-lan 52℃ 0评论

创建和配置Swap

Linux下的swap有两种实现形式,一种是通过某个物理磁盘分区来实现swap,另一种是通过虚拟内存文件来实现swap。接下来我们就只介绍使用文件来实现swap。

当系统内没有剩余可用的分区时我们可以用在Linux的某个目录下创建一个空白文件,通过把这个文件格式化成swap从而实现创建swap的过程。

1、通过dd命令在/tmp/目录下新增加一个4G大小的空文件(大小需要根据自己服务器的物理内存来决定)。

# dd if=/dev/zero  of=/tmp/swap  bs=1M  count=4096   #增加一个4G大小的空文件
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 31.7584 s, 135 MB/s
# chmod 600 /tmp/swap        #修改文件权限,只有root读写
# ls -lh /tmp/swap           #查看创建的文件大小和权限
-rw------- 1 root root 4.0G Jun 14 17:01 /tmp/swap

2、使用mkswap命令把创建的文件格式化为swap

# mkswap /tmp/swap
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=4593bbdb-10dd-49cf-8e3c-118bb3350809

3、使用swapon命令使swap生效

# swapon /tmp/swap
# swapon -s
Filename                                Type            Size    Used    Priority
/tmp/swap                               file            4194300 0       -2    #创建成功

4、将新添加的交换分区添加到/etc/fstab文件中使之开机启动

根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题

/tmp/swap    none    swap    sw    0    0   #Debian9.5默认的格式,这里不要用UUID,这是因为系统只会查询块设备,不会查询文件
/tmp/swap    swap   swap   defaults    0   0  #CentOS7-1810与openSUSE15默认的格式

使用 free -h 命令 查看添加Swap后

# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.6Gi       381Mi       150Mi       2.0Mi       3.1Gi       3.0Gi
Swap:         4.0Gi          0B       4.0Gi                      # 添加完swap容量变成了4G

5、如果添加swap后,还是出现mysqld内存溢出被OOM

这时我们可以尝试修改Swappiness参数。Swappiness是关于swap使用率的参数,swappiness的值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。
查看swappiness使用命令 cat /proc/sys/vm/swappiness
修改Swappiness参数,通过vim打开 /etc/sysctl.conf文件,修改 vm.swappiness=10 ,然后执行命令 sudo sysctl -p 激活设置。

扩展 – 还有一种方法修改Apache2配置文件

网站访问量不大的服务器,可以尝试修改Apache2配置文件(文件路径/etc/httpd/conf/httpd.conf)。Apache2目前有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式,分别是prefork,worker和event。

查看Apache2的MPM模式,可以使用命令 httpd -V ,若提示命令不存在。可以使用命令 ps -ef | grep httpd 查看httpd进程的全路径,然后通过这个进程的全路径进行 -V 操作,比如: /opt/lampp/bin/httpd -V

编辑/opt/lampp/etc/httpd.conf文件,添加下面内容:

<IfModule mpm_prefork_module>
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    ServerLimit 100
    MaxRequestWorkers 100
    MaxConnectionsPerChild 2000
</IfModule>

转载请注明:半亩方塘 » WordPress网站报错Error establishing a database connection(Linux服务器MySQL 服务自动停止的解决方法)

赞 (3)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址