建立数据库连接时出错,但凭据正常

时间:2017-03-27 作者:BenMorel

我正在将WordPress网站迁移到专用服务器,遇到了臭名昭著的“建立数据库连接时出错”错误。我读过similar questions, 还有很多关于这个主题的博客帖子,但我还是被困在了:

我的主页上显示“建立数据库连接时出错”我的wp admin页上显示“一个或多个数据库表不可用。数据库可能需要修复。”

我已经在中验证了凭据wp-config.php. 在命令行上使用它们时,我可以访问数据库,并拥有创建表和CRUD行的所有访问权限WP_DEBUG 和WP_DEBUG_DISPLAY 在里面wp-config.php, 但错误信息仍然很模糊WP_ALLOW_REPAIR 在里面wp-config.php 并已执行/wp-admin/maint/repair.php:wp\\U用户表正常
wp\\u usermeta表正常
wp\\u posts表正常
wp\\U注释表正常
wp\\u links表正常
wp\\U选项表正常
wp\\U Posteta表正常
wp\\U术语表正常
wp\\U term\\U分类表正常
wp\\u term\\u relationships表正常
wp\\U commentmeta表正常
维修完成。

然而,我仍然收到相同的错误消息。

我开始怀疑我得到的备份(我没有做这个备份)是否包含所有必需的表。以下是备份中的表:

wp\\U adrotate组/li>

  • wp\\u EWWWWIO\\u图像
  • wp\\u链接
  • wp\\u选项
  • wp\\u Posteta
  • wp\\u帖子
  • wp\\u term\\u关系erm\\U分类法wp\\u术语wp\\u usermeta wp\\u用户wp\\u订阅者wp\\u wpmm\\u是什么原因导致此错误?有没有办法获取详细的错误消息?

    WordPress版本为4.1.16 DB版本为30135.

  • 1 个回复
    SO网友:Jonny Perl

    您似乎缺少wp\\u termmeta表,我猜备份中省略了该表。

    下面是该表的“create table”语法(您可能需要根据您的MySQL版本进行调整)

    CREATE TABLE `wp_termmeta` (
      `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `term_id` bigint(20) unsigned NOT NULL DEFAULT \'0\',
      `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
      `meta_value` longtext COLLATE utf8mb4_unicode_520_ci,
      PRIMARY KEY (`meta_id`),
      KEY `term_id` (`term_id`),
      KEY `meta_key` (`meta_key`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
    

    相关推荐

    Debug errors on sidebar

    我正在wordpress 3.8上使用一个儿童主题“Twenty14”。在调试模式下,我会遇到以下关于小部件的错误。注意:正在尝试获取\\wordpress\\wp content\\themes\\tema2014\\functions\\widgets中非对象的属性。php在线148update_post_meta($post->ID, \"_sidebar\", $_POST[\"link\"]); 以及注意:未定义的索引:link in\\wordpress\\wp content