1. David Wu首页
  2. WordPress
  3. WordPress建站教程

WordPress出现“建立数据库连接时出错”怎样解决-WordPress安装教程

WP网站建设 浏览器访问网站突然出现“建立数据库连接时出错”,什么情况?于是进入服务器管理页,重启了服务器,网站正常了。 是什么原因因此“建立数据库连接时出错”?查看一下var/log/里面的各种日志,虽然不太会看。 mysqld.log日志文件 2019-01-09T13:24:04.615230Z 0 T WP网站建设

WordPress网站建设

WordPress网站建设

浏览器访问网站突然出现“建立数据库连接时出错”,什么情况?于是进入服务器管理页,重启了服务器,网站正常了。

是什么原因因此“建立数据库连接时出错”?查看一下var/log/里面的各种日志,虽然不太会看。

mysqld.log日志文件

2019-01-09T13:24:04.615230Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-01-09T13:24:04.617096Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.**) starting as process 23937 ...
2019-01-09T13:24:04.620930Z 0 [Note] InnoDB: PUNCH HOLE support available
2019-01-09T13:24:04.620954Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-01-09T13:24:04.620960Z 0 [Note] InnoDB: Uses event mutexes
2019-01-09T13:24:04.620964Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2019-01-09T13:24:04.620968Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-01-09T13:24:04.620971Z 0 [Note] InnoDB: Using Linux native AIO
2019-01-09T13:24:04.621268Z 0 [Note] InnoDB: Number of pools: 1
2019-01-09T13:24:04.621377Z 0 [Note] InnoDB: Using CPU crc32 instructions
2019-01-09T13:24:04.622890Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-01-09T13:24:04.622937Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
2019-01-09T13:24:04.622945Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2019-01-09T13:24:04.622952Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-01-09T13:24:04.622959Z 0 [ERROR] Plugin \'InnoDB\' init function returned error.
2019-01-09T13:24:04.622963Z 0 [ERROR] Plugin \'InnoDB\' registration as a STORAGE ENGINE failed.
2019-01-09T13:24:04.622967Z 0 [ERROR] Failed to initialize builtin plugins.
2019-01-09T13:24:04.622969Z 0 [ERROR] Aborting

2019-01-09T13:24:04.622988Z 0 [Note] Binlog end
2019-01-09T13:24:04.623035Z 0 [Note] Shutting down plugin \'CSV\'
2019-01-09T13:24:04.623243Z 0 [Note] /usr/sbin/mysqld: Shutdown complete

上述只截取了mysqld.log部分ERROR报错,上述日志重复出现了5次,mysql无法启动。网上搜索关于此现象,大概是内存不足引起mysql无法启动。

怎么解决此问题?

环境为:CentOS7.3

配置为:1核1G

参考各种资料,总结两种方法

A、创建swap交换分区

因为轻量应用服务器1核1G,搞不定mysql5.7这个耗资源大户。只能创建一个类似Windows系统的虚拟内存,来解决内存不足引起的各种问题。

B、配置 php-fpm.conf 文件,控制php-fpm的子进程数

可能是由于php-fpm子进程过多耗光了内存,造成mysql的进程被干掉了。

现在我只是实行了A计划,创建了swap交换分区,暂时还没再次遇到mysql被干掉。这需要服务器连续工作10天左右,才能验证问题是否得到解决。如果问题没有得到很好的解决,再来实行B计划。

A、创建swap交换分区

首先查看当前内存用量 free -m 

[root@iz2zecnv***sp3z ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            992         517          59          48         415         262
Swap:             0           0           0

可以看到Swap没有容量,因此我们需要创建一个Swap交换分区。

### 建立交换分区文件swapfile ###
[root@iz2zecnv***sp3z ~]# dd if=/dev/zero of=/swapfile bs=1024 count=2048k
### bs=每块字节数1024K count=2048块 ###

2097152+0 records in
2097152+0 records out
2147483648 bytes (2.1 GB) copied, 15.3131 s, 140 MB/s

将swapfile文件指定为交换文件

[root@iz2zecnv***sp3z ~]# mkswap /swapfile
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=0fa99a4c-05e8-4662-9011-286012868e08

将swapfile映射为Swap分区

[root@iz2zecnv***sp3z ~]# swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@iz2zecnv***sp3z ~]# chmod 600 /swapfile

查看交换文件设置信息

[root@iz2zecnv***sp3z ~]# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file    2097148 0       -1

再次查看当前内存用量 free -m

[root@iz2zecnv***sp3z ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            992         498         103          48         390         265
Swap:          2047           0        2047

创建swap分区成功后,设置swap分区开机自动加载。需要修改系统的fstab文件,vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Aug 18 03:51:14 2017
#
# Accessible filesystems, by reference, are maintained under \'/dev/disk\'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 /                       ext4    defaults        1 1
/swapfile swap swap sw 0 0

在fstab文件最后面添加一行 /swapfile swap swap sw 0 0 即可,修改此文件千万不能出错。

假如不想用这个交换分区了

### 关闭交换内存 ###
swapoff /swapfile

### 删除交换文件 ###
rm -f /swapfile

### vi编辑fstab文件,删除开机自动挂载/swapfile swap swap sw 0 0 ###
vi /etc/fstab

以上是Swap交换分区创建与删除的整个流程,观察几天之后再看看是否能有效解决物理内存不足导致mysql被干掉的情况了。如果情况不太乐观的话,进一步实行B计划!

原创文章,作者:网站建设,如若转载,请注明出处:https://www.davidwu.net/archives/130924

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

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