繁体   English   中英

Wordpress - 建立数据库连接时出错

[英]Wordpress - Error establishing a database connection

在我基于 Wordpress 的网站上没有任何更改,几天前它只是停止运行。 在此之前,我从用于监控此站点的服务中收到了比正常数量更多的“站点关闭”消息。

现在,我在尝试访问该站点时得到的只是标题中列出的错误。 页面上仅显示消息“建立数据库连接时出错” - 没有别的。

我在同一台服务器上运行了其他博客站点,它们都仍在运行。 我可以用 phpmyadmin 访问这个网站的数据库没问题。 我还通过phpmyadmin(在另一个站点上推荐)对wp-options表进行了“修复”。

最后,我创建了一个新的 php 文件,它与数据库建立连接,然后在连接时从数据库中回显数据。 我将所有数据库连接数据直接从该站点的 wp-config 文件传输到这个新的 php 文件,因此它连接的信息完全相同。

连接此文件没有问题。

但是,如果我清除此文件,然后只在其中放置以下代码:

    <?php
    require_once '/home/bestsynt/public_html/wp-config.php';
global $current_user;
get_currentuserinfo();
$level = $current_user->user_level;
echo $level;
    ?>

我收到完全相同的错误消息。

由于这是一个相对高流量的网站,它已经关闭了两天。 由于问题似乎不在“服务器/主机”端,因此我不太可能在该端获得太多支持。 这与 Wordpress 本身有关,但我不知道是什么。

在此处输入图片说明

在数据库主机中添加 127.0.0.7:3307 端口而不是 localhost 和 MySQL 端口 3307 或您的 MySQL 端口号。 数据库主机后

安装 Wordpress 的大多数问题与:“建立数据库连接时出错”有关,是由 wp-config.php 中的错误配置引起的

define('WP_HOME','http://www.mysite.com');
define('WP_SITEURL','http://www.mysite.come');
define('DB_NAME', 'mydbname');
/** MySQL database username */
define('DB_USER', 'dbusername');
/** MySQL database password */
define('DB_PASSWORD', 'dbpassword');
/** MySQL hostname */
define('DB_HOST', 'localhost'); //If you are not using default port number
  • 我们必须确保用户“dbusername”对数据库“mydbname”具有正确的权限
  • 本地主机需要或不设置端口。
  • 默认情况下,尝试使用具有所有权限的用户和密码“root”:

    定义('DB_USER', 'root');

    定义('DB_PASSWORD','root');

在此之前,您需要确保:

  • 为 Wordpress 安装创建一个数据库。
  • 拥有被授予访问该数据库的权限的数据库用户和密码。

转到 WordPress 文件夹打开配置文件在 DB NAME 中更改您的数据库名称,用户名 DB_USER,密码 DB_PASSWORD db host 在 DB_HOST 或

define('WP_ALLOW_REPAIR', true);

将此添加到您的配置文件中

导致这种情况的另一种情况是由于未设置本机密码的 Mysql8 用户。 你可能需要做一些简单的事情

ALTER USER 'jeffrey'@'localhost'
  IDENTIFIED WITH mysql_native_password
             BY 'password';

这将解决问题。 刚刚通过全新的 WP 安装遇到了它,并且无法弄清楚为什么凭据看起来是正确的,但是 WP 会一直说它无法连接。 最后启用调试:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true );

这显示了正在发生的实际错误:“服务器请求了客户端未知的身份验证方法”。

希望这可以帮助某人!

您需要做的第一件事是打开诊断功能,以便您可以准确查看错误是什么。 在您的 wp-config.php 文件中打开 WP_DEBUG ...

define( 'WP_DEBUG', true );

然后重启你的服务器。 您现在将看到一条详细的错误消息,有助于识别和解决问题。

事实证明,这是我的 wordpress 数据库中 wp-options 表中缺少的条目。

通过 Phpmyadmin 中的 SQL 选项卡发出的以下插入命令解决了该问题:

INSERT INTO `wp_options` VALUES (1,0,'siteurl','http://bestsyntheticoil.com/','yes')

不确定这条记录是如何被删除的,因为我没有在那个数据库中工作。 但是,至少现在已经解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM