为什么我不能在可湿性粉剂安装中交换数据库?

时间:2018-07-20 作者:Jelnet

我感到困惑的是,试图更改现有WP安装中的数据库,例如:

我有一个本地WP站点(在XAMPP中)在一个名为database-a的DB上正常工作,但是如果我在WP配置中更改:

define(\'DB_NAME\', \'database-A\');

收件人:

define(\'DB_NAME\', \'database-B\'); (只是另一个WP DB)

我得到:

Error establishing a database connection

但如果我将database-A导出到A中。sql文件,并清空数据库-B,然后导入数据库-A。sql文件导入数据库-B,网站正常运行。

那么,是什么在验证WP安装中的数据以使其工作,为什么database-B不能只与WP安装一起工作呢?

我尝试过的事情:

更改wp配置中的身份验证唯一密钥和盐。php更改数据库中站点主机名的实例删除Cookie

1 个回复
SO网友:Tom J Nowell

可能发生这种情况的原因:

当WP检查表是否存在时,如果DB连接失败,则无法访问数据库DESCRIBE 如果在中设置初始变量时wpdb对象中记录了错误,则对表的查询将失败,无论是基于权限还是基于访问权限wp_set_wpdb_varsms_load_current_site_and_network 退货false<如果get_networks 退货false, 因此,当if ( empty( $current_site ) ) { 为true,表示无法确定当前站点} elseif ( 0 === strcasecmp( $current_site->domain, $domain ) ) { 是真的,因此,您不能将一个多站点数据库换成另一个,因为:

它们需要相同的表前缀、盐等,站点表中的所有站点都需要存在,否则它将无法找到当前站点,它需要能够找到当前网络(所有多站点也是多网络,但没有网络UI)

  • 现在两个数据库都需要适当的身份验证详细信息,几乎不可能从你的问题中分辨出哪一个是你绊倒的,而且可能还有更多的地方。如果你能让它工作起来,我的第一个建议是停止这样做。

    这是一种获得技术债务、使事情复杂化、使其更加脆弱、阻止标准部署和迁移工具正常工作的好方法。

    我怀疑你的数据库名称可能会被调用productionstaging 在这种情况下,这不是解决两者之间切换的适当途径

  • 结束

    相关推荐

    有没有可能在不使用wp-config.php、.htaccess或php.ini中的指令的情况下增加php内存?

    我使用的插件由于内存不足而崩溃。但我所在的主机(万神殿)使用git在开发服务器(我有FTP访问权限)和实时服务器(我没有FTP或SSH访问权限)之间进行文件更新。我无法更改wp配置。php和提交文件,因为Dev和Live之间的数据库详细信息不同。php。不允许使用ini文件和中的PHP指令。不允许htaccess。如何为Live增加PHP内存?我可以在主题文件中添加指令吗?类似功能。php?这对插件内存有效吗?