Как использовать AzerothCore с MySQL 5.7

После того, как я обновил свою версию MySQL с 5.6 до 5.7, установщик AzerothCore завершился ошибкой, например:

ОШИБКА 1067 (42000) в строке 234: недопустимое значение по умолчанию для 'last_login'

ОШИБКА 1292 (22007) в строке 266: неверное значение даты и времени: "0000-00-00 00:00:00" для столбца "last_login" в строке 1

а также:

Не удается найти подходящую строку в пользовательской таблице

2 ответа

Решение

РЕДАКТИРОВАТЬ: этот ответ устарел, все проблемы с MySQL 5.7 были решены в последней версии


Как указано на странице требований вики AC:

AzerothCore официально не поддерживает версию MySQL>= 5.7, но есть способ ее запустить и запустить.

Вы должны удалить флаги ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE и NO_ZERO_DATE из переменной sql_mode MySQL в файле конфигурации MySQL, чтобы все запросы обновлений и основные операторы могли быть применены правильно.

Я нашел полезным установить в моем режиме sql пустую строку (что в моем случае решило все проблемы с MySQL 5.7):

SET GLOBAL sql_mode = ''

Вы можете запустить этот оператор SQL через терминал, используя:

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

или же вы можете вручную установить режим SQL перед запуском любых операторов SQL:

SET sql_mode = '';

На самом деле, вам лучше сделать это так (чтобы избежать удаления режимов по умолчанию):

-- 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 можно сохранить

Другие вопросы по тегам