4

在安装/更新AzerothCore时,有时会遇到以下错误:

[错误]:在 mysql_stmt_prepare() 中 id:3,sql:

[错误]:“字段列表”中的未知列“条目”

[错误]:“字段列表”中的未知列“dmg_multiplier”

[错误]:表 'acore_world.graveyard_zone' 不存在

[错误]:“字段列表”中的未知列“mindmg”

错误:您的数据库结构不是最新的。请确保您已执行 sql/updates 文件夹中的所有查询。

这通常意味着数据库结构不是最新的。

更具体地说,本地 DB 版本与本地核心版本不一致。

这导致以下问题:

  • 如何检查数据库是否是最新的?
  • 如何了解每个 DB 缺少哪些 DB SQL 更新?
4

1 回答 1

4

2021 年更新:

最新的 AzerothCore 现在在核心内集成了自动数据库更新程序。

您只需要通过worldserver.conf设置启用它:

Updates.EnableDatabases = 7

然后您的worldserver流程将自动为您更新所有数据库。

您需要最新的 AC才能获得此功能。


原始答案和解释:

AzerothCore 拥有三个数据库:authcharactersworld。所有这些都需要正确更新才能启动服务器应用程序。

每个数据库都有一个表,该表在其最后一列的名称version_db_xxxx中保存有关数据库版本的信息。

  • auth DB 有version_db_auth
  • 字符数据库有version_db_characters
  • 世界数据库有version_db_world

数据库版本将以YYYY_MM_DD_XX基本上是日期后跟数字 ( XX) 的格式表示。

此值将是此类表的最后一列的名称,它对应于已应用于该数据库的最后一个 SQL 更新文件的名称。

SQL 更新文件可以在azerothcore-wotlk/data/sql/updates/db_xxxx/目录中找到(其中xxx是数据库名称):

为了确保数据库是最新的,应该比较(每个数据库):

  • version_db_xxxx表的最后一列名称
  • 最新的sql 文件名包含在data/sql/updates/db_xxxx

(就最近日期而言,最近的。如果日期相同,则具有最高待处理编号的文件是最近的)

如果值相同,则数据库是最新的。否则,需要按顺序导入所有缺失的 SQL 更新文件来更新 DB。

于 2019-03-21T14:00:44.737 回答