Вопросы

Perfect231
Освоившийся

Пытаюсь подключить мод к БД. Ввёл все данные, но в консоле пишет, что подключение не удалось. Пробовал по разному вводить данные. Итог один - ошибка

Скриншот консоли: *Клик*

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


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

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

  • 0
Cawfee
Великий Гуру

@Perfect231, выведите код ошибки подключения к базе данных в консоль. Если не знаете как, покажите код, в котором выводится сообщение о несостоявшемся подключения к базе данных.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee *Клик* 

Оно?

Заметка от DEST , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

Загружайте код не скриншотами, а через встроенные инструменты форума.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, да. Вот возвращаемое значение функции mysql_errno и выведите в консоль.

printf("MySQL connection errorid = %d", mysql_errno());

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee эту строку надо вставить в мод и посмотреть что выводится в консоли?

просто если вставить в саму консоль, то она ничего не выдаёт

 

Отредактировано пользователем Perfect231

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся
  открыть спойлер

это выводится в консоль. скорее всего я что-то не так сделал

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

после повторного запуска вышло это

  открыть спойлер

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@keyl данные копировал с хостинга, проверил много раз, ошибки в вводе данных нет.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, попробуйте подключиться к базе данных вручную. Например, через SSH клиент или утилиты MySQL.

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся
  открыть спойлер

это код данных от бд. Если вдруг может тут дело. Данные убрал

Отредактировано пользователем Perfect231

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

решил вопрос добавлением сточки 

new dbHandle;

но при заходе на сервер ничего не выдаёт 
Скрин

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
hokageud
Завсегдатый

@Perfect231 попробуй убрать 

SetServerConfiguration(bind[])
а на его место вывести
    SendRconCommand("hostname TAVRIDA ROLEPLAY");
    SetGameModeText("TAVRIDA CRMP");
    mysql = mysql_connect("""""""");

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee попробовал пошаманить с подключением. теперь всё загружает, но выдаёт это

  открыть спойлер

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, ну, написано же, что произошел выход за пределы массива: в массиве есть всего 49 ячеек (с индексами 0 ... 48), а вы пытаетесь что-то записать в ячейку с индексом 49, то есть фактически осуществляете попытку записи в чужую область памяти.

 

Можете поискать просто массив на 49 ячеек и посмотреть все выполняемые с ним действия в надежде прийти к успеху. Есть и другой вариант, более адекватный: подключить библиотеку crashdetect, которая, помимо всего прочего, подскажет вам, на какой строке искать проблему.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee crashdetect подключён. в консоле пишутся номера строк, но там нет ничего такого

 

@Cawfee нашёл массив. изменил значение. теперь бд прогружается полностью. но на самом сервере что нельзя зайти из-за ошибки в системных настройках 

Скрин

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, ой, а он действительно подключен. Что-то я уже совсем -_-

 

В LoadBusinesses по идее должен быть этот массив. Пересматривайте получение информации о бизнесах из базы данных.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee я нашёл его. убрал значение 49 и поставил 500. Там было максимальное кол-во бизнесов. теперь всё работает, но выдаёт на самом сервере сбой. скрин в сообщении выше

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, корректнее было бы добавить проверку: если количество бизнесов в базе данных больше максимально допустимого количества бизнесов (не знаю, как у вас называется константа, но, предположим, MAX_BUSINESS, тогда пропускать загрузку остальных бизнесов):

if (rows > MAX_BUSINESS) {
    printf("[x] Не удалось загрузить все бизнесы ввиду недостаточного размера массива. Загружено %d из %d бизнесов", MAX_BUSINESS, rows);
    rows = MAX_BUSINESS; // фактически загрузим лишь столько бизнесов, сколько влезет
}

for (new i = 0; i < rows; i++) {
    // загружаем
}

 

Касаемо второго вопроса, обычно такое можно увидеть, когда запрос к базе данных  на получение информации о существовании аккаунта не удался. Например по причине неправильного названия таблицы аккаунтов. Нужно смотреть логи MySQL.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee 

  открыть спойлер

вот код где есть эта надпись

Отредактировано пользователем Perfect231

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee надо просто в мод вставить это? если да, то куда

{ )()
{
 mysql_log(ALL); //logs everything (errors, warnings and debug messages)
    return  1
}

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, куда-нибудь перед подключением к базе данных (чтобы в случае ошибок при подключении запись о самой ошибки также была занесена в файл логов).

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee я нашёл его. там жесть. Логи повторяются по миллиону раз. куда скинуть файл?

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@Perfect231, удалите этот файл. Заново зайдите на сервер, получите так называемый вами сбой, после этого прикрепите файл сюда (лучше его содержимое в текстовом виде). Уточню, что удаление файла ни к чему плохому не приведет: он просто создастся заново, но там не будет повторяющихся "миллион раз" логов.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Perfect231
Освоившийся

@Cawfee всё равно миллион раз повторяются, если быть точнее, то: 65178 раз

вот это первая ошибка

[03/04/23 22:46:16] [plugins/mysql] error #1054 while executing query "UPDATE `accounts` SET `online` = 1001, `leader_access` = 0": Unknown column 'online' in 'field list' (C:\Users\banas\Desktop\PERFECT RP pc-mobile\gamemodes\new.pwn:6703 -> ../include/system/vehicle.pwn:444 -> ../include/system/pickup.pwn:133 -> ../include/anticheat.inc:2599 -> ../include/foreach.inc:584 -> ../include/Pawn.CMD.inc:125 -> ../include/sscanf2.inc:205 -> ../include/pawnraknet.inc:1028)

 

Отредактировано пользователем Perfect231

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Elvis
      От Elvis
      Идёт набор в команду по разработке CRMP-проекта! 
       
      Требуются специалисты на следующие роли:  
      - Технический администратор (1 человек)  
      - Технические разработчики (2 человека)  
      - Внутриигровые разработчики (5 человек)  
       
      Все подробности и условия обсудим лично — пишите руководителю в Telegram - @AntonLegost
    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК