我将MySQL版本从5.6升级到5.7后,AzerothCore安装程序失败,并显示以下错误:
第234行出现错误1067(42000):“ last_login”的默认值无效
第266行出现错误1292(22007):错误的日期时间值:第1行的“ last_login”列的“ 0000-00-00 00:00:00”
和:
在用户表中找不到任何匹配的行
答案 0 :(得分:2)
编辑:此答案有些过时,MySQL 5.7的某些问题已在最新版本中解决
如requirements page of the AC wiki中所述:
AzerothCore并不正式支持MySQL版本5.7以上,但是有一种方法可以使其启动并运行。
您必须从MySQL配置文件中的MySQL的sql_mode变量中删除
ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE
和NO_ZERO_DATE
标志,以便可以正确应用所有查询更新和核心语句。
我发现将SQL模式设置为空字符串很有用(在我的情况下,它可以解决MySQL 5.7的所有问题):
SET GLOBAL sql_mode = ''
您可以使用以下命令通过终端运行该sql语句:
mysql -e "SET GLOBAL sql_mode = '';"
或者您也可以在运行任何SQL语句之前手动设置SQL模式:
SET sql_mode = '';
答案 1 :(得分: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月,可能根本不需要它,我们已修复此问题,但将来可能会再次出现