1

在我将 MySQL 版本从 5.6 升级到 5.7 后,AzerothCore安装程序失败并出现以下错误:

第 234 行的错误 1067 (42000):“last_login”的默认值无效

第 266 行的错误 1292 (22007):不正确的日期时间值:第 1 行的列“last_login”的“0000-00-00 00:00:00”

和:

在用户表中找不到任何匹配的行

4

2 回答 2

2

编辑:这个答案有点过时,MySQL 5.7 的一些问题已在最新版本中得到解决


AC wiki 的要求页面所述

AzerothCore 不正式支持 MySQL 版本 >= 5.7,但有一种方法可以启动并运行它。

您必须在 MySQL 配置文件中从 MySQL 的 sql_mode 变量中删除ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATENO_ZERO_DATE 标记,以便可以正确应用所有查询更新和核心语句。

我发现将我的 SQL 模式设置为空字符串很有用(在我的例子中,这解决了 MySQL 5.7 的所有问题):

SET GLOBAL sql_mode = ''

您可以使用以下命令通过终端运行该 sql 语句:

mysql -e "SET GLOBAL sql_mode = '';"

或者,您可以在运行任何 SQL 语句之前手动设置 SQL 模式:

SET sql_mode = '';

于 2018-12-21T12:39:27.553 回答
2

事实上,你最好这样做(以避免删除默认模式):

-- Select the sql modes
SELECT @@sql_mode;

-- Remove the 2 modes NO_ZERO_IN_DATE and NO_ZERO_DATE and run this query
SET sql_mode = 'mode_1,mode_2,mode_3,mode_4,mode_5';

这也可以直接放在mysql配置中。

之后[mysqld]

[mysqld]
sql_mode = mode_1,mode_2,mode_3,mode_4,mode_5

注:ONLY_FULL_GROUP_BY可保留

编辑:截至 2019 年 3 月,可能根本不需要它,我们已经解决了这个问题,但将来可能会再次发生

于 2019-01-28T18:07:07.987 回答