帮酷LOGO
0 0 评论

正文
文章标签:WORD  Wordpress  数据库连接  DEB  debug  数据  

介绍

WordPress是世界上最流行的开源内容管理系统之一,尽管它开始专注于博客,但是,多年来它已经开发成一个更灵活的网站平台,经过近十五年的发展,它已经非常完善和强大,但是仍然存在一些问题。

前提条件

本教程假定以下内容:

WordPress 运行在有命令行和sudo访问权限的计算机上,你的数据库运行在与WordPress相同的服务器上(典型的自承载WordPress安装程序,不是共享WordPress托管环境),你知道数据库用户名,密码和为WordPress创建的数据库的名称。

步骤1检查服务器内存资源

调试这个问题的第一步是尝试登录到服务器来查看系统是否正常,并且MySQL是否正在运行。


ssh sammy@your_server_ip

你可能需要重新启动服务器,才能登录。

成功登录后,检查MySQL服务器是否正在运行:


sudo netstat -plt

netstat命令打印关于服务器系统联网的信息,在这种情况下,我们希望(-p )监听连接的程序名在tcp套接字(-t )上被(-l )监听,检查清单mysqld的输出输出,如下所示:


OutputActive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql *:* LISTEN 1958/mysqld
tcp 0 0 *:ssh *:* LISTEN 2205/sshd
tcp 0 0 localhost:smtp *:* LISTEN 2361/master
tcp6 0 0 [::]:http [::]:* LISTEN 16091/apache2
tcp6 0 0 [::]:ssh [::]:* LISTEN 2205/sshd
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 2361/master

如果你的输出类似,那么MySQL正在运行,并且正在监听连接,如果你没有看到列出MySQL,请尝试手动启动MySQL ,在大多数系统中,如下所示:


sudo systemctl start mysql

某些Linux发行版(CentOS,特别是)使用 mysqld 服务名称不是普通的mysql

MySQL应该启动,要验证,请重新运行上面使用的netstat命令,并检查mysqld进程的输出。

MySQL和WordPress都需要大量的内存才能正常运行,如果MySQL由于内存不足而退出,我们应该在错误日志中看到它的证据,让我们看看:


zgrep -a"allocate memory" /var/log/mysql/error.log*

zgrep将搜索日志文件,包括已存档为压缩.tar.gz文件的旧日志文件,我们正在搜索包含allocate memory的行,其中error.log*文件中,/var/log/mysql/ 目录。


Output2017-04-11T17:38:22.604644Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

如果你看到像上面这样的一行或多行信息,那么你的MySQL服务器是由于内存耗尽而退出,如果只是一行,你可能暂时遇到异常流量,如果有很多错误行,则你的服务器经常遇到内存不足。不管如何,解决方案都是迁移到有更多可用内存的服务器。

如果在运行zgrep命令后,没有看到输出,则服务器没有内存不足,如果你的站点仍在服务错误,请继续查看WordPress配置,并确保MySQL登录详细信息正确。

步骤2检查数据库登录凭据

如果你刚刚在服务器上移动了WordPress安装,那么你可能需要更新数据库连接信息,它存储在服务器上的一个PHP文件wp-config.php中。

首先,找到wp-config.php文件:


sudo find / -name"wp-config.php"

这将从root目录(/ )中搜索所有内容,并查找名为wp-config.php的文件,如果存在这样的文件,则将输出完整路径:


Output/var/www/html/wp-config.php

现在使用你喜欢的文本编辑器打开配置文件,


sudo nano /var/www/html/wp-config.php

最顶端是我们的数据库连接信息:

wp-config.php

/** The name of the database for WordPress */
define('DB_NAME', 'database_name');

/** MySQL database username */
define('DB_USER', 'database_username');

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

根据记录检查这三个变量是否正确,


mysqlshow -u database_username -p

你将被提示输入密码,粘贴并按ENTER键,如果你获得访问拒绝错误,你的用户名或密码不正确,否则,mysqlshow命令将显示指定用户可以访问的所有数据库:


Output+--------------------+
| Databases |
+--------------------+
| information_schema |
| database_name |
+--------------------+

如果完成操作,则说明你已验证配置正确,并且WordPress应该能够成功登录数据库。重新加载你的网站看看错误是否已经消失。

步骤3修复WordPress数据库

有时,由于升级失败,数据库崩溃或插件故障,你的WordPress数据库会损坏。

WordPress提供修复数据库的能力,但默认情况下禁用了它,因为它没有访问控制,并且可能导致安全问题,我们启用该功能,运行修复程序,然后禁用它。

再次打开wp-config.php文件:


sudo nano /var/www/html/wp-config.php

在任何空行上,粘贴以下内容:

wp-config.php

define('WP_ALLOW_REPAIR', true);

保存并关闭文件,切换到浏览器,并且加载以下地址,确保将你的站点或IP地址替换为突出显示的部分:


http://www.example.com/wp-admin/maint/repair.php

将加载一个数据库修复页面:

按"修复数据库(Repair Database)"按钮,你将被转到一个结果页面,你可以看到实时检查和修复:

一旦过程完成,一定要再次打开wp-config.php文件,并删除我们刚刚粘贴的行。

再次尝试你的站点,并检查错误是否已消失,如果发现不可修复问题,则可能需要从备份还原数据库,如果有可用的备份,有关如何做的详细信息,请参考教程如何在mysql中导入和导出数据库

结束语

大多数"建立数据库连接时出错(Error Establishing Database Connection)"问题都应该通过上三个步骤来解决,然而,仍然有更多的难以捉摸的问题继续以这种方式呈现出来,以下是在跟踪和消除此错误原因时可能有用的一些文章:

通过以下方法来消除攻击如何从XML-RPC Attacks Protect WordPress ,通过在WordPress安装中实现缓存来节省一些服务器资源,有许多简单的缓存插件用于WordPress ,如何配置redis缓存加速WordPress将向你展示如何配置高性能的redis备份缓存。


文章标签:数据  WORD  Wordpress  DEB  debug  数据库连接  

正文

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语