BF3 | BF4 Ошибка: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Вероятно после обновления mysql сервера (почти 100%) хостером возникла эта ошибка. Возможно какой-то из плагинов не учитывает обновления Mysql. Что с этим можно поделать при условии, что откатить Mysql нельзя, а плагины все последних версий и давным давно заброшены.
[00:00:59] Error in Tablebuilder:
[00:00:59] Message: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead
[00:00:59] Native: -2147467259
[00:00:59] Source: MySql.Data
[00:00:59] StackTrace: bei MySql.Data.MySqlClient.MySqlStream.ReadPacket()
bei MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
bei MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
bei MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
bei MySql.Data.MySqlClient.MySqlDataReader.NextResult()
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
bei PRoConEvents.CChatGUIDStatsLogger.tablebuilder()
[00:00:59] Error: System.NullReferenceException: The object reference was not set to an object instance.
bei PRoConEvents.CChatGUIDStatsLogger.DisplayMySqlErrorCollection(MySqlException myException)
bei PRoConEvents.CChatGUIDStatsLogger.tablebuilder()
 

Slawter

Support team
5 Сен 2014
21.932
882
Вам надо сделать дайнгрейд майскул базы данных, так как новая версия не поддерживается плагином, об этом говорит ошибка.

INNODB активно у хостера?
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
В смысле даунгрейд сервера базы данных? Я им это предлагал сделать. Там они явно обновили (distupgrade) ubuntu с 14.04 на что-то что сейчас акутально и вместе с ним mysql. Насколько я понял из их ответов никто даунгрейдить очевидно не будет.
 

Slawter

Support team
5 Сен 2014
21.932
882
Ну или разработчик плагина должен выпустить обновление.
Его ищите другой хост для базы данных.
Сделайте дамп и вперёд
 

Slawter

Support team
5 Сен 2014
21.932
882
Удивительно зачем они вообще обновили базу данных, плагины то не обновляются давно.
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Ну да, там 90% плагинов протухил лет 5 как :) Не дождуся. Вообще странная конечно политика предоставлять сервер под протухшие дела и обновлять его до актуальных версий.
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Удивительно зачем они вообще обновили базу данных, плагины то не обновляются давно.
Не поверите, я им ровно тоже самое написал, на что получил ответ де они плагины не поддерживают и идите к разработчику плагина. Хотя я им на ломанном английском сказал, что плагин уже лет 5 не поддерживается, да и какой плагин - не известно.
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Есть хотя бы возможность попытаться узнать какой именно плагин заставляет бд генерить ошибку?
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Тьфу, это я думал средство, чтобы посмотреть какой плагин генерит ошибу. А это сам плагин, который ее и генерит :) Спасибо.
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Пофиксил ошибу. В исходниках плагина нужно поправить (в формате патча):
5429c5429
< `TeamID` smallint(5) NOT NULL DEFAULT 0,
---
> `TeamID` smallint(5) DEFAULT NULL,
 
  • Like
Реакции: Slawter

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Для исправления последствий запилил быдлоскрипт на perl. Без защиты от дурака и т.д. При повторном запуске без восстановления базы до исходного состояния данные покорежатся. По идее после исправления запуск ничего не испортит, так как для обработки будут взяты только ники, у которых по 2 PlayerID. Использовать нужно на тестовой БД, после успешного исправления сдампить ее и залить уже исправленную на хостинг.
 

Вложения

  • Like
Реакции: Slawter

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
И отдельный быдлоскрипт для исправления таблицы tbl_chatlog. В ней нужно просто по никнейму проставить имеющийся в той же таблице ID.
 

Вложения

  • Like
Реакции: Slawter

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Поймал туже фигню у другого хостера. Nitrado.com. Там еще веселее было. Они права на базу полные не давали по дефолту, а там при обновлении AdKats до версии 7.5.0.0 нужна привилегия создания REFERENCES и из-за этого плагин не запускался.
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Веселый ребята. Я им написал, что этот плагин работает только со старой версией, но версию не уточинл. Они двинули взад на 5.7.20 с 5.7.24, а там проблем только добавилось :) Лучше бы вообще ничего не сделали. Вообще после общения с их поддержкой я понял, что gamed.de еще не так плохи.
 

Slawter

Support team
5 Сен 2014
21.932
882
Ну тогда поднимите лучше свою БД, так будет проще думаю :)
 

BlitzKrieg

Старший сержант
22 Янв 2018
84
4
25
Да там другая история. Просто товарищ попросил посмотреть, что там за ошибка и пошло-поехало.