我可以使用所有的管理页面,但在前台有一个“错误建立数据库连接”-错误

时间:2018-06-22 作者:Chris Nissen

我知道你可能厌倦了别人发布另一条消息Error establishing a database connection 但我确实做了研究,没有发现关于我的具体问题,所以请阅读。

我在本地机器上开发,页面运行良好!我的开发环境中的数据库是从生产数据库的快照迁移而来的。同样,我将本地数据库快照迁移到生产数据库。

但在服务器上使用外部生产数据库运行Wordpress时,我得到了Error establishing a database connection 我的主页上的页面。

因此,我做了以下工作:

已选中wp-config.php 文件试图通过CLI从我的服务器连接到数据库,其值来自wp-config.php 文件(This succeeded!! )wp-admin()This also succeeded!!!! 我能够登录并使用的所有子页面wp-admin )

  • 搜索了Web,试图用Wordpress工具修复数据库中可能存在的不一致/wp-admin/maint/repair.php(还是一样的行为……)
  • 搜索网页
  • 搜索网页
  • 真的很沮丧
  • 再次搜索网页。。。我想你明白了,我还问了我的一个朋友,他对Wordpress很有经验,但他也不能帮我解决这个问题,事实上他从来没有见过这个问题,所以如果你有任何想法,我将不胜感激,因为我完全不知道该怎么做。


    UPDATE

    因为我认为问题一定出在数据库上,所以我也尝试了以下方法:

    删除了我的数据库,创建了一个新的空数据库,称为URL,并完成了wordpress的安装过程,新安装后仍然存在相同的错误

  • 2 个回复
    SO网友:Por

    确保数据库连接正确

    define(\'DB_NAME\', \'database-name\');
    define(\'DB_USER\', \'database-username\');
    define(\'DB_PASSWORD\', \'database-password\');
    define(\'DB_HOST\', \'localhost\');
    
    您应该使用普通php文件进行测试,以连接数据库,如下代码所示

    <?php
    
    $connect = mysql_connect(\'localhost\', \'root\', \'password\');
    if (!$connect) {
        die(\'Could not connect: \' . mysql_error());
    }
    echo \'Connected successfully\';
    mysql_close($connect);
    
    要使其在本地主机或生产环境中具有灵活性,请使用这种方式,

    <?php
    
    switch ( $_SERVER[\'HTTP_HOST\'] ) {
        case \'yourdomain.dex\': //local
            define( \'DB_NAME\', \'rino\' );
            define( \'DB_USER\', \'root\' );
            define( \'DB_PASSWORD\', \'\' );
            define( \'DB_HOST\', \'localhost\' );
            define( \'WP_DEBUG\', true );
            define( \'WP_DEBUG_DISPLAY\', true );
            define( \'SCRIPT_DEBUG\', true );
            define( \'WP_DEBUG_LOG\', true );
            define( \'FS_METHOD\', \'direct\');
            @ini_set( \'display_errors\', true );
            define( \'ENV\', \'dev\' );
            break;
    
        case \'yourdomain.staging.com\': //staging
            define( \'DB_NAME\', \'creati_444\' );
            define( \'DB_USER\', \'creatisd\' );
            define( \'DB_PASSWORD\', \'lPC44@8u1B\' );
            define( \'DB_HOST\', \'localhost\' );
            define( \'WP_DEBUG\', true );
            define( \'WP_DEBUG_DISPLAY\', true );
            define( \'SCRIPT_DEBUG\', true );
            define( \'WP_DEBUG_LOG\', true );
            @ini_set( \'display_errors\', true );
            define( \'ENV\', \'staging\' );
            break;
    
        default : //production
            define( \'DB_NAME\', \'keikfi\' );
            define( \'DB_USER\', \'siekfi\' );
            define( \'DB_PASSWORD\', \'lPC@8#u1B\' );
            define( \'DB_HOST\', \'localhost\' );
            define( \'WP_DEBUG\', false );
            define( \'ENV\', \'pro\' );
            break;
    }
    
    
    $protocol = ( ! empty( $_SERVER[\'HTTPS\'] ) ) ? \'https://\' : \'http://\';
    
    define( \'WP_SITEURL\', $protocol . $_SERVER[\'HTTP_HOST\'] );
    define( \'WP_HOME\', $protocol . $_SERVER[\'HTTP_HOST\'] );
    
    有了以上代码,您不需要关心本地或生产,因为我们可以动态更改网站域,所以它可以工作。正当

    而且,您应该使用表修复进行测试

    define(\'WP_ALLOW_REPAIR\', true);
    
    上述解决方案不起作用,是时候与主机提供商沟通了:)

    SO网友:Lisa Baird

    我不确定您的服务器类型,或者它是否承载多个站点,但是否有其他脚本正在尝试连接?就像以前配置中的恶意脚本一样。。htaccess文件?

    听起来这个端口可能被阻塞或正在使用,我知道这不太可能,但听起来是时候看看不太可能的情况了。

    另外,如果您还没有,请检查Dns中的域,可能有一个包含错误IP的记录隐藏在其中。我知道我有时会忘记换前锋。我会更新IP,不知道wtf会不会发现我忘记删除转发。

    结束

    相关推荐

    Database problem

    我的数据库有问题。首页工作正常,但当我想访问backoffice mysite时。com/wp admin我正在重定向到/wp admin/install。因此,我打开了phpmyadmin,看到有一个空数据库。。没有列,没有行,只有前端站点和所有页面工作正常吗?XD。发生了什么事?我有w3 total缓存和云flare。也许我的网站只因为我的数据库被缓存而工作?如何恢复数据库?请帮帮我,我没有备份。