【问题标题】:Is it possible to have different charsets within same database?同一个数据库中是否可以有不同的字符集?
【发布时间】:2016-10-23 21:28:20
【问题描述】:

这里是总数据库新手,但我在将 wordpress 网站上传到 Nexcess 服务器时遇到问题。我可以在 siteground 和 bluehost 上毫无问题地做到这一点,但是通过复制器和手动上传时我丢失了数据。我在这个网站的开发过程中做了 WordPress 升级到 utf8mb4,我的 wp-config 文件中的字符集仍然设置为 utf8。

我的数据库中是否有可能同时存在两个版本?我有一个问题,我的大部分数据没有显示在后端,但有些数据显示在前端并带有问号,但我设法通过使用 wp dB migrate 导出数据库以支持旧版本的 mysql 来解决这个问题。这解决了问号,并且再次出现在后端。

现在我所缺少的只是我通过放在页脚中的函数 php 制作的小部件。他们都丢失了数据。

【问题讨论】:

  • 请修正您的标签
  • 您是否直接更改了数据库中的数据?因为这不是最佳实践,数据以序列化形式保存,其中字符数也被保存。您应该撤消数据库中的直接更改并在导出后进行更改。
  • @Asalan 目前我还没有触及数据库中的任何值。我有一些实验测试,但在当前无法正常工作的实现中没有。

标签: mysql wordpress


【解决方案1】:

WordPress 将许多选项存储为“序列化数据”,其中包含事物的字符串内容及其长度。所以当你修改了URL,长度改变了,那么序列化的数据就不再正确了,PHP就拒绝了。

【讨论】:

  • 如果 Siteground 和 Bluehost 都能够毫无问题地显示所有数据,这会是问题吗?
  • 如果您没有修改数据库中的数据,那么问题是缺少小部件的其他问题。
【解决方案2】:

好的,经过多次红鲱鱼我已经解决了这个问题。问题与herehere 列出的一样,但与我预期的不同。问题是我没有完全追求这一点,因为它在 SiteGround 和 Bluehost 上没有问题。

我尝试了 Duplicator、Duplicator PRO、Migrate DB 插件、手动上传数据库,并在许多不同的配置中进行搜索和替换。所有这些都给我留下了相同的问题或大部分内容被替换但总是缺少页脚。最终为我工作的是使用this php script。它仍然不是一个完美的解决方案,因为我让它在我的开发站点上工作,并且在测试站点上连接到他们在我的本地主机上设置的服务器上的文件夹,但我没有让它在实时站点上工作。所以我不得不,最后有选择地使用 php 脚本更改链接。不优雅,但它完成了工作。

这些都没有真正向我解释为什么会发生这种情况。如果它在其他服务器上运行如此轻松,那么在 Nexcess 上搞砸了什么?

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多