p123456 Posted January 3, 2014 Posted January 3, 2014 Примерно на третий день работы сервера выскакивает вот такая ошибка. Переписывал все, уже со скули ушёл на файлы, но в скуле хранятся логин и пароль и в итоге все равно на 3-4 день выскакивает такая ошибка. То ли я дурак, то ли хз. Решения на форумах не нашол . Если серв крутиться на винде, то mta просто закрывается, если на дебе, то возникает такая ошибка и никто зайти больше не может до перезагрузки серва. Кто знает - есть решение?
p123456 Posted January 5, 2014 Author Posted January 5, 2014 [2014-01-03 18:11:35] ERROR: While updating account with 'UPDATE userdata SET value='288', type=3 WHERE userid=2214 AND key='kod_file'': SQL logic error or missing database. а в целом это выглядит примерно так: [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='1', type=3 WHERE userid=2252 AND key='zone'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='1', type=3 WHERE userid=2252 AND key='land'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='stat'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='klan'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='otrad'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='ob_tel'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='1', type=3 WHERE userid=2252 AND key='grag'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='101', type=3 WHERE userid=2252 AND key='rab'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='rang'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='0', type=3 WHERE userid=2252 AND key='deis'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='1', type=3 WHERE userid=2252 AND key='retu'': SQL logic error or missing database. [2013-12-26 19:16:06] ERROR: While updating account with 'UPDATE userdata SET value='7', type=3 WHERE userid=2252 AND key='obos'': SQL logic error or missing database. С этой ошибкой: SQL logic error or missing database. И тоже решить не смог. Такое впечатление, что в какой то момент просто файл закрыт для записи и имеет атрибут только на чтение. Лечиться командой quit на сервере и запуском *mta-server
AMARANT Posted January 5, 2014 Posted January 5, 2014 Найди скрипт где ты обновляешь эти данные и убери везде в строках как SET value='101' кавычки, чтобы было -> SET value=101 . Есть вероятность что значение должно быть числом, а не строкой, откуда и ошибка.
TheNormalnij Posted January 5, 2014 Posted January 5, 2014 Возможно, что там будут не сами числа, а знак "?" или "??". Если "?" поставь "??", ну и наоборот.
p123456 Posted January 6, 2014 Author Posted January 6, 2014 Еще раз повторюсь. СЕРВЕР РАБОТАЕТ 2-4 ДНЯ до ОШИБКИ. За это время проходит порядка 200 игроков. И только потом в какой то прекрасный момент выскакивает ошибка. Причем я уже сделал очередь на загрузку и сохранение данных. Код: function Save_Exit(thePlayer) source=thePlayer account = getPlayerAccount (source) if (account) then local x,y,z = getElementPosition (source) local r,g,b = getPlayerNametagColor (source) ... -- ++ полиция dans=getElementData ( source, "are") setAccountData (account, "are", dans) -- количество арестов dans=getElementData ( source, "sve") setAccountData (account, "sve", dans) -- количество звезд собраных dans=getElementData ( source, "wand") setAccountData (account, "wand", dans) -- количество звезд у игрока -- -- полиция dans=getElementData ( source, "arena") setAccountData (account, "arena", dans) -- количество убиств на арене dans=getElementData ( source, "artef") setAccountData (account, "artef", dans) -- количество сданных артефактов dans=getElementData ( source, "crekla") setAccountData (account, "crekla", dans) -- создание кланов кол-во dans=getElementData ( source, "odsidka") setAccountData (account, "odsidka", dans) -- Время отсида в секундах 19 04 13 dans=getElementData ( source, "transp") setAccountData (account, "transp", dans) -- транспорт 19 04 13 dans=getElementData ( source, "poll") setAccountData (account, "poll", dans) -- пол игрока 20 04 13 dans=getElementData ( source, "mexa") setAccountData (account, "mexa", dans) -- работа механика 21 04 13 dans=getElementData ( source, "umexa") setAccountData (account, "umexa", dans) -- работа механика 21 04 13 dans=getElementData ( source, "bomg") setAccountData (account, "bomg", dans) -- бомж 21 04 13 dans=getElementData ( source, "firemen") setAccountData (account, "firemen", dans) -- колво пожаров 030513 dans=getElementData ( source, "ufiremen") setAccountData (account, "ufiremen", dans) -- уровень пожаров 030513 dans=getElementData ( source, "dom") setAccountData (account, "dom", dans) -- дом в котором игрок 12 05 13 dans=getElementData ( source, "house") setAccountData (account, "house", dans) -- купленные дома 12 05 13 dans=getElementData ( source, "zombi") setAccountData (account, "zombi", dans) -- убитые зомби 14 05 13 dans=getElementData ( source, "bon_akc") setAccountData (account, "akcii", dans) -- бонус по акциям 15 05 13 / 1-телепорт 2-вечный вип dans=getElementData ( source, "mobilnik") setAccountData (account, "mobilnik", dans) -- мобильник 19 05 13 / кол-во дней для использования СМС ... end end end } function onQuit (quitType, reason, responsibleElement) if not (isGuestAccount (getPlayerAccount (source))) then Save_Exit(source) end end addEventHandler ("onPlayerQuit", getRootElement(), onQuit)
DakiLLa Posted January 6, 2014 Posted January 6, 2014 Хоть чуточку, пожалуйста, уважайте участников конференции и нормально выложите ваш код в [ /lua ] тегах, с табуляцией и без сокращений (не надо вырезки из кода скидывать). Как вы хотите, чтобы мы поняли, например, вот это: ... end end end } И да, вряд ли тут кому-то интересны ваши "бомжи и количество убитых зомби", если уж вы так боитесь, что кто-то украдет кусок вашего драгоценного кода...
CocaColaBear Posted January 6, 2014 Posted January 6, 2014 Мне кажется, что в какой-то момент запросы не успевают обрабатываться. Я уже представил, когда человек эдак 10 в одно время начнут покидать сервер и он начинает UPDATE'ить 19 раз (это только если взять обрезанный код выше) для каждого игрока. Выходит серверу нужно сделать 190 UPDATE'ов практически в одно время. Это не маленькая нагрузка.
p123456 Posted January 6, 2014 Author Posted January 6, 2014 Я уже писал, что в настоящий момент создана очередь чтения/записи - Принцип такой - Все в массив и последовательно идет запись потом загрузка, поэтому игроки начали подвисать при входе на сервер. И насчет ... end end end } Это просто что идентичных строк 378. Короче мне понравился ответ Jadore. Думаю пересоздам всю базу SQL оставив в ней имя, пароль и имя_файла с данными, а все остальное будет на очереди. Данная проблема практически с начала работы серва , а это уже 6 месяцев. Одновременный вход/выход был зафиксирован всего один раз.
CocaColaBear Posted January 6, 2014 Posted January 6, 2014 Просто принцип сохранения не правильный. Сохранять нужно тогда, когда данные изменяются, а не всегда. Приведу пример: Игрок сменил скин. В вашем случае скин всегда будет сохранятся при выходе игрока, а зачем это? Если проще сохранить его тогда, когда он был изменен и больше нигде не трогать.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now