WordPress数据库连接错误解决方案!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zhang_1218/article/details/79772804

原文见此:www.louhang.xin
前段时间网站莫名其妙显示“WordPress数据库连接错误”,之后各处搜寻错误原因,终得解决,现在将自己的解决方案分享一下,希望对大家有帮助~

一. 原因分析

  • 数据库连接相关参数存在问题:数据库名,数据库账号,登陆密码等等,需要验证更新

  • wp_options表出现问题,导致了连接失败。

  • 数据库前缀不一致,因为有可能数据库在迁移过程中,其前缀发生了变化,数据表前缀不一致,也可能导致连接错误。

  • 数据库没有启动。在某些情况下,数据库会自动关闭,当你连接时,数据库未启动服务,自然显示连接失败。

  • 数据库服务器崩溃(故障),这个时候,已经game over了,自己很难解决问题了,所以去找服务商解决吧~


二.解决方案

1、查看服务器上的数据库是否正常运行。

查看命令:

ps aux|grep mysql

如果显示(如下图)可以查看到 MySQL 的进程,说明数据库是运行正常的请参考第二步操作。
数据库正常运行

如果显示(如下图)查看不到 MySQL 进程,说明数据库没有运行,需要手动启动 MySQL 数据库。
数据库未启动

手动启动 MySQL 数据库后,再访问网站进行测试。如下图:
启动数据库

2、在服务器上输入命令

mysql -uroot -hlocalhost -p 

然后输入 mysql 的密码,测试是否可以正常登录到数据库中。如下图所示,如果不能登录到 MySQL ,说明数据库的密码错误,请重新修改 mysql 的密码。
修改密码

3、(修改完 MySQL 的密码)如果可以正常登录后,再修改 WordPress 网站程序中连接数据库的设置。修改一下 MySQL 密码的设置。首先远程连接到你的服务器上,然后输入命令

 find / -name 'wp-config.php' 

会找到wp-config.php文件所在的目录,如下图所示:
查找wp-condfig.php文件

之后输入命令vim wp-config.php 进入文件,键入以下命令对密码进行更新

/** MySQL database password */
define('DB_PASSWORD', '5d682d12db1');

效果图如下:
修改密码

4、如果仍然存在问题,则有可能是数据库连接参数要验证更新或者wp_options表有问题或数据表前缀有问题,都需要在文件wp-config.php上进行修改。
可以看一下:
wp-config.php

在wp-config.php中添加以下代码:

define('WP_ALLOW_REPAIR', true);

如下如所示:
添加代码

然后直接访问后台http://域名/wp-admin/,按照wordpress的修复步骤操作即可。

5、如果仍然不能解决问题,那么就查找错误日志(如下图示),找到问题根源。
在服务器上输入命令:

find / -name 'error.log'

查找错误日志

键入命令vim error.log 查看错误日志所记录的错误(如下图示)
本人数据库错误

6、根据错误原因:

170914 17:50:28 [ERROR] Plugin 'InnoDB' init function returned error.
170914 17:50:28 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170914 17:50:28 [ERROR] Unknown/unsupported storage engine: InnoDB
170914 17:50:28 [ERROR] Aborting

判断有两种情况:

  1. Remove the current instance and try selecting the non-transactional database configuration for the new instance. I believe this does not use the InnoDB plugin. This should remove the first error “Plugin ‘InnoDB’ init function returned error. Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.”

  2. open command prompt and type ‘netstat -a | find “3306”’ (without single quotes). If you get an output then the default port for MySql
    is currently being used by some other application. You have to choose
    a different port and reconfigrue the instance. This should eliminate
    the second error ” Can’t start server: Bind on TCP/IP port: Address
    already in use”
    原文链接:

此时只要改名或删除MySQL安装目录 %MySQL_HOME%/data 目录下的ib_logfile0和ib_logfile1两个文件,就可以解决问题了。
这里写图片描述

这两个日志文件如果不存在,每次启动MySQL服务后,都会自动创建的。

7、如果仍然不能解决问题的话,那么此时就删除mysql目录下的data中所有文件。然后重新启动即可。

8、如果此时都没有解决问题的话,那么,我也爱莫能助了。。。请联系数据库服务商为你处理问题吧~


最后的最后,说一下,以上只是个人在解决问题时的一些思路和方法,各位有此问题的同学可以作为参考。
数据库很重要,所以,各位要记得备份和时刻检查日志文件。

(一些图片来源于阿里云,另一些打码的图片来源我的服务器,还请各位看官见谅)

猜你喜欢

转载自blog.csdn.net/Zhang_1218/article/details/79772804