如何在MySQL 5.7中使用AzerothCore

时间:2018-12-21 12:39:28

标签: azerothcore

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

  

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

     

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

和:

  

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

2 个答案:

答案 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_DATENO_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月,可能根本不需要它,我们已修复此问题,但将来可能会再次出现