原文见此: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文件所在的目录,如下图所示:
之后输入命令vim wp-config.php
进入文件,键入以下命令对密码进行更新
/** MySQL database password */
define('DB_PASSWORD', '5d682d12db1');
4、如果仍然存在问题,则有可能是数据库连接参数要验证更新或者wp_options表有问题或数据表前缀有问题,都需要在文件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
判断有两种情况:
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.”
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、如果此时都没有解决问题的话,那么,我也爱莫能助了。。。请联系数据库服务商为你处理问题吧~
最后的最后,说一下,以上只是个人在解决问题时的一些思路和方法,各位有此问题的同学可以作为参考。
数据库很重要,所以,各位要记得备份和时刻检查日志文件。
(一些图片来源于阿里云,另一些打码的图片来源我的服务器,还请各位看官见谅)