Как использовать AzerothCore с MySQL 5.7 - PullRequest
0 голосов
/ 21 декабря 2018

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

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

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

and:

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

Ответы [ 2 ]

0 голосов
/ 28 января 2019

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

-- 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 года это, вероятно, не нужно вообще, мы это исправили, но это может произойти снова в будущем

0 голосов
/ 21 декабря 2018

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


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

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

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

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

SET GLOBAL sql_mode = ''

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

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

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

SET sql_mode = '';

...