Как использовать 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
можно сохранить