解决:wordpress error establishing a database connection problem

   日期:2024-12-28    作者:chemicalhengtai 移动:http://mip.riyuangf.com/mobile/quote/75869.html

我是个网站菜鸟,刚开始搭建LAMP环境的时候,就要了我半条老命。

解决:wordpress error establishing a datab<i></i>ase co<i></i>nnection problem

没办法,懂的东西太少,LAMP是什么我都不懂,域名是什么,我也被不懂,为什么想要有个网站就要有服务器我还是不懂。一步步地自己去钻,去看digitalocean给的说明教程。慢慢就懂了。

 

我的VPS(Virtual Private Server虚拟专用服务器)的配置很low,CPU只有512M- -

最开始解决这个问题,就是重启我的服务器

 

以上两个代码用的飞起,实际上如果是database crash了,以下两个命令应该就ok了

 

 

好吧,问题来了。刚开始的时候,我发现error establishing这个问题的时候,我根本不知道怎么回事。后来这几天学了一下mysql的配置才知道。首先,我想要描述一下,解决问题的步骤。

1、发现error establishing a database connection的问题——稍微google一下就知道是数据库的问题

2、去查数据库mysql的err log。具体位置应该是在/var/log下面

3、查了以后我就发现是 out of memory,cannot allocate innodb buffer pool=128M(内存只有512M你让我怎么办)的问题了

4、google了一下,这种问题有两种解决方法

  有一种方法就是增加swap文件(下面详细介绍swap空间及其增加方法:digitalocean的add swapfile教程

  还有就是要修改你的innodb_buffer_pool_size(下文详细介绍)


 Swap空间

Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

先来说下swap的工作原理
swap 的工作我们可以看成是一个静态的中转装置。假如我们的内存是512M的。当有任务来了但是由于之前任务和并发任务占有了许多的工作空间,使得这个工作的位 置要大于512M的空间时,就会导致启动失败。因为没有它的位置。这个时候许多的工程师和技术牛人们就发明了这个swap空间,即虚拟内存的技术。 swap空间实际是在硬盘上的。工作原理是:当我们有 一个任务来到的时候,发现物理内存空间不够了,那么我们把这之前用户开启了但是经常没有使用的空间给释放出来,将他们的一些信息存入swap空间。然后给 这个后来的程序先用物理内存空间,当我要用到之前的程序的时候我们再从swap空间将之前保存的内容调用回来。
 
增加swap空间的两种方法:第一种是创建一个swap分区,第二种是创建swap文件,这里我们介绍第二种比较简单的方法
1、查看本机有没有已经配置的swap空间,利用下面的命令可以看到swap空间的使用情况

 如果你没有配置swap空间,发现敲完上面的命令,什么也没有,如果你配置了,就会出现下面的情况,我在我的VPS上配置的是4G

还有一种方法就是用free,它会显示出系统整体的内存使用情况

 

2、查看可用的硬盘空间,因为swap空间实际上要用的是硬盘空间,所以,当然你要查看还有多少硬盘可用

 

 3、创建一个swap文件,并更改其权限

我们查看这个文件的权限

会发现这个文件的可读权限是开发给任何人的,这样是非常不安全,因此我们要改变一下这个文件的权限

 

 恩,这样就安全多了

 4、使用这个swap文件

使用下面这个命令,告诉系统我们要把这个文件作为swap文件了

 然后就是要使用这个swap文件了

 

 

然后我们再用free -m命令查看内存的使用情况

发现这个swap文件已经ok了

5、使得这个新加入的swap文件永久生效,在系统启动的时候就生效,因此我们要在/ect/fstab文件里加入下面一行

先用vi打开文件,然后添加下面一行,然后保存。

 

 


修改innodb_buffer_pool_size

我的VPS上装的mariadb(15个mariadb的性能调优方法)。它有四个配置文件- - 分别都在/etc下面

my.cnf.d是一个文件夹(这里面有三个文件,忽视掉那个bakup文件,是我修改sever的备份

然后去/usr/share/mysql里面,会有一些example的配置文件,copy一份过来,我的VPS的配置,我选择了medium那个文件

然后重启mariadb

 

我们查看一下innodb_buffer_pool_size有没有被修改

查看方法:进到mysql里面,然后select下面那个变量。

 

 

,发现已经被我们改成50M了


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号