代码之家  ›  专栏  ›  技术社区  ›  Francesco Borzi

如何在MySQL 5.7中使用AzerothCore

  •  0
  • Francesco Borzi  · 技术社区  · 7 年前

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

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

    第266行出现错误1292(22007):第1行“上次登录”列的日期时间值不正确:“0000-00-00 00:00:00”

    以及:

    2 回复  |  直到 6 年前
        1
  •  2
  •   Barbz_YHOOL    7 年前

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

    -- 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月,可能根本不需要,我们已经解决了这个问题,但将来可能会再次出现

        2
  •  2
  •   Community Mohan Dere    6 年前

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


    requirements page of the AC wiki :

    你必须移除 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 = '';

    推荐文章