解决WordPress建立数据库连接时出错

相信很多新手朋友都遇到过WordPress提示“建立数据库连接时出错”这个错误,英文为“Error establishing a database connection”:

今天我们就来讲一下这个错误一般是什么原因导致,以及如何进行修复。

“建立数据库连接时出错 ”是什么意思?

首先,我们需要了解WP是如何显示网站的,这将让我们清楚地了解为什么这个错误数据库是如此具有破坏性。WordPress系统站点的所有数据都由MySQL(或其他分支)数据库存储,然后使用PHP语言来检索和存储来自该数据库的信息。

通常,无论何时加载您网站的任何页面,它都是即时创建的。 需要使用PHP代码 访问MySQL数据库以检索构建页面所需的所有数据。比如通过不同的PHP查询函数获取文章标题、作者姓名、发布日期等。

“建立数据库错误时出错”意味着由于某种原因,您的站点PHP代码无法与MySQL数据库连接以获取显示该页面所需的数据。

数据库连接出错的原因和处理方案

数据库连接出错,一般是以下原因之一造成的:

1、数据库连接信息错误

熟悉WordPress的朋友应该知道,在WordPress根目录下有一个名为 wp-config.php 的文件,里面包含了数据库连接信息:

所以,当我们遇到“建立数据库连接时出错”时,我们应该首先检查这个wp-config.php文件的数据库连接信息是否正确,尤其是当我们更换主机或数据库的时候。如果不正确,就根据实际情况去修正。

如果你不清楚新主机的数据库连接信息,建议联系主机商咨询。

2、MySQL数据库停掉了

由于某些原因,可能会导致MySQL数据库进程停掉,比如内存不够、PHP查询语句错误等,这个时候, 如果已经确认wp-config.php的数据库连接信息是正确的,那我们就应该去检查下MySQL是否停掉了。如果是的,那就启动看下是否可以恢复。

导致MySQL停掉的原因可能很多,也比较复杂,在此我们不进行讨论。如果MySQL经常无故停掉,建议找专业的运维人员去帮忙处理。

3、数据库表损坏

如果已经确认wp-config.php的数据库连接信息是正确,并且MySQl数据库运行正常,那我们就应该去检查数据库是否有数据表损坏了。

由于插件、主题的不断变化,或者在WordPress网站中安装了安装编码错误或不良的插件,或者文章数据量很大,这些都有可能导致数据库损坏。

要查找数据库哪个表是否损坏,一般我们可以登录phpmyadmin等可视化数据库管理界面去查看,如果看到某个表的大小明显和实际数据不符,或者有提示“正在使用中”(貌似是这句话,不是记得很清楚了),那就可以先下载备份一下数据库,然后选中表,使用phpMyAdmin等内置的修复功能去修复。

参考: https://www.wpdaxue.com/series/phpmyadmin

此外,我们可以开启WordPress内置的数据库修复功能进行修复,这个修复功能默认是禁用的,我们需要在 wp-config.php 文件的第二行后添加下面的代码去开启:

define( 'WP_ALLOW_REPAIR', true );

添加好以后,访问你的网站任何一个页面,WordPress就会自动尝试去修复数据库。请注意:任何人都可以访问到数据库修复页面,所以一旦你执行完修复了以后,请务必记得删除上面添加的代码!!

4、某些PHP文件损坏

如果通过上面的步骤去检查操作了,还是无法恢复正常,那我们就需要去考虑是否有PHP文件损坏了。因为PHP文件的损坏,会导致查询功能的错误,从而导致数据库出错。

至于到底哪些PHP文件损坏,这个是很难去找的,我们只能不断去尝试。大致的思路如下:

  1. 备份网站的所有文件,很重要!!!
  2. 通过FTP等可以管理文件的界面,去删除 wp-content/themes/ 目录下当前使用的主题,然后看下是否可以恢复。注意必须保留一个WP默认自带的主题,然后尝试访问 /wp-admin/ 网址。
  3. 删除 wp-content/plugins/ 目录下的插件,看下是否可以恢复
  4. 如果还不行,删除 /wp-content/ 和 wp-config.php 以外的文件,重新到官方下载版本一致的WordPress原版,上传覆盖。

整个操作过程可能有些复杂,如果你不会,请务必找专业的运维人员操作,并且请务必做好备份!!!!!

好了,以上就是处理 “建立数据库连接时出错” 的一般途径,希望可以帮到大家,实在需要帮助处理,可以找倡萌付费服务。

来源:

https://www.wpdaxue.com/error-establishing-a-database-connection.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?