KaJIbMaP

Проблемы с БД

Вопрос

Здравствуйте. После рестарта начали пропадать техника с ключами, постройки и сейфы, как будто  был вайп, но после 1-2 рестартов появляется все на месте + кучи техники, которой до этого не было. Каждый раз приходится делать откат.. Раньше эта проблема была примерно рас в месяц, а теперь по 2-3 раза за неделю. Не подскажете, как это можно исправить? Версия сервера 1.0.4.2.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 ответа на этот вопрос

Здравствуйте. После рестарта начали пропадать техника с ключами, постройки и сейфы, как будто  был вайп, но после 1-2 рестартов появляется все на месте + кучи техники, которой до этого не было. Каждый раз приходится делать откат.. Раньше эта проблема была примерно рас в месяц, а теперь по 2-3 раза за неделю. Не подскажете, как это можно исправить? Версия сервера 1.0.4.2.

скорей всего сервер не правильно рестартится. он каждый раз запускается заного поэтому всё пропадает и загружается изначальный списпок машин. Возможно не прав)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


Это ошибка HIVE 1.0.4.2, когда игрок не успел прогрузиться при старте сервера и вышел.

в обновлении "а" она исправлена.

Обновляй сервер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Karakurd
      Создание Процедур в базе данных, для чистки сервера во время рестарта и их запуск.
      Основано на http://s-platoon.ru/index.php?/topic/835-udalenie-broshennoi-tekhniki/?p=8922 за батник парню отдельное спасибо!
       
        Нам понадобится:
      1. PhpMyAdmin или Navicat
      2. Желание творить =)
       
        Для начала нам нужно создать 2 хранимых процедуры и 1 функцию в базе данных:
      1. Процедура pMain - открывает технику к которой утерян ключ (делает ее незакрываемой)
      2. Функция FindVehicleKeysCount- определяет параметр наявности ключа для pMain
      3. Процедура pCleanup - финальная очистка сервера перед стартом.
       
        Процедура pMain:
      PhpMyAdmin:
      1. Открываем PhpMyAdmin => выбираем нашу базу => вкладка "Процедуры" => "Добавить процедуру"
      2. Заполняем появившееся окно:
      Имя процедуры......................................pMain
      Тип.........................................................PROCEDURE
      Параметры (Направление, Имя, Тип, Длина/значения, Параметры) - Удаляем строчку нажатием на красный крестик справа!
      В поле "Определение" вставляем код:
       
       
      Определяющий......................................Галка снята!
      Определитель.........................................пользователь БД@localhost
      Тип безопасности....................................DEFINER
      Доступ к SQL данным.............................MODIFIES SQL DATA
      Комментарий..........................................оставляем пустым
      Жмем ОК - всё, процедура у нас есть.
       
      Navicat:
      1. Подключаемся к нашей БД => в верхнем меню кнопка "Functions" =>  "New function"
      2. В появившемся окне ставим галку Type - Procedure и жмем "Finish"
      3. Вкладка Definition:
      В поле для SQL запроса всё стираем и вставляем код из под спойлера для PhpMyAdmin
      Parameter..............................................оставляем пустым
      Return Type............................................неактивно (оставляем пустым)
      Type......................................................PROCEDURE
         Вкладка Advanced:
      Security.................................................DEFINER
      Definer...................................................пользователь БД@localhost
      Data Access..........................................MODIFIES SQL DATA
      Deterministic..........................................галка снята
         Вкладка Comment - оставляем пустой
         Вкладка SQL Preview - в ней можно посмотреть запрос в БД который выполнится для создания данной процедуры, должно быть так:
       
       
      Всё, жмем кнопочку "Save" вводим имя - pMain и процедура готова.
       
      Процедура pCleanup
         Создается аналогично процедуре pMain, только в поле "имя" естественно прописывам - pCleanup,
      а в поле для SQL запроса следуйщий код:
       
       
      Этот код можно подредактировать под себя, удалить ненужные запросы или добавить новые, а можно вообще отключить данную процедуру закоментировав в pMain строку:
      CALL pCleanup();   Функция FindVehicleKeysCount:
      PhpMyAdmin:
      1. Открываем PhpMyAdmin => выбираем нашу базу => вкладка "Процедуры" => "Добавить процедуру"
      2. Заполняем появившееся окно:
      Имя процедуры....................................FindVehicleKeysCount
      Тип.......................................................FUNCTION
      Параметры...........................................[ имя - keyId ] [ тип - INT ] [ длина\значения - пусто ] [ параметры - пусто ]
      Возвращаемый тип...............................INT
      Вернуть длину/значения.......................11
      Вернуть параметры...............................оставляем пустым
      Определение........................................вставляем следуйщий код:
       
       
      Определяющий....................................галку установить!
      Определитель......................................пользователь БД@localhost
      Тип безопасности.................................DEFINER
      Доступ к SQL данным..........................READS SQL DATA
      Комментарий.......................................оставляем пустым
      Жмем ОК - функция готова.
      Navicat:
      1. Подключаемся к нашей БД => в верхнем меню кнопка "Functions" =>  "New function"
      2. В появившемся окне ставим галку Type - Function и жмем "Finish"
      3. Вкладка Definition:
      В поле SQL запроса всё стираем и вставляем код из под спойлера для PhpMyAdmin
      Parameter............................................`keyId` INT
      Return Type..........................................int(11)
      Type....................................................FUNCTION
         Вкладка Advanced:
      Security...............................................DEFINER
      Definer.................................................пользователь БД@localhost
      Data Access........................................READS SQL DATA
      Deterministic........................................галка установлена!
         Вкладка Comment - оставляем пустой
         Вкладка SQL Preview должна отображать следуйщий запрос:
       
       
      Жмем "Save" вводим имя FindVehicleKeysCount, функция готова.
       
      //Данные процедуры можно добавить в базу SQL запросом (для тех кто понимает что делает), вот пример - http://s-platoon.ru/index.php?/topic/2107-protcedury-v-bd/?p=18767
       
      С созданием процедур покончено, теперь нам всё это дело нужно запустить...
      // Дальнейшая инструкция подразумевает что у Вас уже установлен BEC
         Предлагаю вашему вниманию 2 варианта батника:
      1. All In 1 - всё в одном окне, в том числе и BEC
       
       
       
      2. BEC в отдельном окне, это дает возможность останавливать и запускать BEC при работающем сервере (удобно при его настройке)
       
       
      Во втором случае нам понадобится отдельный батник для запуска BECa:
      Bec.bat
      timeout /t 35 cd D:\ArmA2\BEC "D:\ArmA2\BEC\Bec.exe" -f config.cfg exit Не забываем все пути и параметры в батниках править под свой сервер!!!
    • Автор: vitacite
      Привет маленький гайд по работе с redis. 
      1) качаем и устанавливаем клиент для redis под windows
       
      https://github.com/uglide/RedisDesktopManager
       
      картинки как устанавливать прилагаются там же
       
      2) запускаем клиент можно даже во время работы с сервером (на всякий случай сбекапте вашу базу данных)
       
      3) для подключение вводим в окно с ip 127.0.0.1 и пароль который прописан у вас в redis конфиге после чего получаем доступ к базе данных вашего сервера включая торговцев их предметы и лут и предметы игроков (привязка осуществляется по STEAM ID)
       
      Давайте рассмотрим простой пример, как это делается... 
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Обратите внимание на формат записи данных - сначала указывает список предметов которые есть у AI затем указывается их кол-во. 
       
      Для наглядности можно заменить предметы у ваших торговцев на эти =
       
      [["WhiskeyNoodle","ItemCoolerE","Hatchet","16Rnd_9x21_Mag","PaintCanGrn","HeatPack","ItemGoldBar10oz","Chemlight_green","HandGrenade","30Rnd_9x21_Mag","6Rnd_45ACP_Cylinder","20Rnd_556x45_UW_mag","5Rnd_rollins_mag","9rnd_45X88_magazine","ItemScraps","optic_Holosight_smg","30Rnd_65x39_caseless_green","SmokeShellRed","SmokeShellBlue","20Rnd_762x51_Mag","emptyjar_epoch","muzzle_snds_H","SmokeShellOrange","5Rnd_127x108_APDS_Mag","arifle_Mk20C_plain_F","ChainSaw","30Rnd_65x39_caseless_mag_Tracer","30Rnd_65x39_caseless_mag","muzzle_snds_M","muzzle_snds_B","C_Van_01_box_EPOCH","honey_epoch","ItemEmerald","30Rnd_556x45_Stanag","30Rnd_762x39_Mag","PaintCanOra","11Rnd_45ACP_Mag","MortarBucket","FoodSnooter","PaintCanBlk","PaintCanBlu","PaintCanYel","optic_Holosight","arifle_MX_F","200Rnd_65x39_cased_Box","LMG_Mk200_F","Binocular","arifle_Mk20_plain_F","H_14_EPOCH","optic_Aco_smg","7Rnd_408_Mag","200Rnd_556x45_M249","9Rnd_45ACP_Mag","30Rnd_45ACP_Mag_SMG_01","V_4_EPOCH","V_16_EPOCH","hgun_PDW2000_F","jerrycan_epoch","100Rnd_65x39_caseless_mag","hgun_P07_F","SmokeShellGreen","Pelt_EPOCH","NVG_EPOCH","MiniGrenade","CircuitParts","optic_Yorris","10Rnd_762x51_Mag","5Rnd_127x108_Mag","6Rnd_GreenSignal_F","hgun_Pistol_Signal_F","SmokeShell","optic_Aco","hgun_Pistol_heavy_01_F","arifle_MXC_F","hgun_Rook40_F","M14Grn_EPOCH","SmokeShellPurple","muzzle_snds_H_MG","acc_flashlight","m249Tan_EPOCH","SMG_02_F","m249_EPOCH","200Rnd_65x39_cased_Box_Tracer","30Rnd_556x45_Stanag_Tracer_Yellow","optic_DMS","Towelette","acc_pointer_IR"],[1,4,0,11,1,2,2,19,16,5,5,2,2,2,1,1,2,1,2,1,0,1,15,0,1,0,2,0,2,2,0,0,1,8,2,1,11,0,0,0,1,1,1,3,13,1,2,1,0,2,2,2,9,4,1,1,2,0,1,1,14,1,0,8,0,1,1,0,2,1,14,3,1,1,1,0,14,1,1,1,1,1,1,1,1,2,1]] Оригинальный гайд можно найти на официальном сайте epoch 
      http://epochmod.com/forum/index.php?/topic/31459-editing-items-or-adding-items-to-traders-using-redismanager/
      там же можно найти веб утилиты для управления лутом и финансами игроков и онлайн карту для вашего сервера.
    • Автор: Windows
      Добрый вечер! У меня проблема с базой данных, запускаю сервер, читает задание, игра началась и всё, глухо как в танке =( помогите разобраться в чём проблема
    • Автор: JackKilovat
      Помогите, стала база данных долго подгружать, дайте всякие команды для базы данных, и все такое, а то сервер лагает при 30 человек
      железо:
      6 ядер 3 грц
      2 гб оперативы
      40 ссд
    • Автор: Gogi
      Всем добрый вечер!!
       
      Решил я реализовать стартовый лут через базу данных. Если вставлять все руками то работает просто замечательно. Написал тригер который срабатывает при при заполнении таблицы character_data, на подобии гайда: 
      http://s-platoon.ru/index.php?/topic/98-reliz-polzovatelskaia-tochka-spauna-cherez-baz/?hl=релиз
       
      Собственно ничего сложного нет в запросе который я написал но все же он не хочет работать, либо я не так его написал.
      CREATE TRIGGER `custom_spawn` BEFORE INSERT ON `character_data` FOR EACH ROW BEGIN DECLARE PUID varchar(50); DECLARE KOORD varchar(50); DECLARE INV longtext; DECLARE BCK longtext; SET PUID = (SELECT `PlayerUID` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID); SET INV = (SELECT `Inventory` FROM `cust_spawn` WHERE `PlayerUID`=NULL); SET BCK = (SELECT `Backpack` FROM `cust_spawn` WHERE `PlayerUID`=NULL); IF(PUID=NEW.PlayerUID) THEN SET INV = (SELECT `Inventory` FROM `cust_spawn` WHERE `PlayerUID`=PUID); SET BCK = (SELECT `Backpack` FROM `cust_spawn` WHERE `PlayerUID`=PUID); END IF; IF((SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID)!=NULL) THEN SET KOORD = (SELECT `worldspace` FROM `cust_spawn` WHERE `PlayerUID`=NEW.PlayerUID); SET NEW.Worldspace = KOORD; END IF; SET NEW.Inventory = INV; SET NEW.Backpack = BCK; END; Вкратце обьясню, как я представлю его работу:
       В таблице кастомного спавна есть строка NULL, поэтому сначала переменным INV и BCK (Инвентарь и рюкзак соответсвенно) значения лута для обычных игроков. Потом идет проверка UID новой строки на наличие UID в таблице с лутом. Если это так, то инвентарь и рюкзак берутся из строки с этим UID из таблицы лута. Следующая проверка на кастомную точку спавна, я сделал так что можно делать донату только лут без спавна в желаемом месте.