#Copyright

Подключаем базу данных сервера.

В теме 6 сообщений

Здравствуйте дорогие друзья, думаю каждый из вас задавался вопросом - "А как же подключить базу данных чтобы я нормально запустил сервер", так вот - в данном уроке вы научитесь без проблем подключать базу данных сервера и запускать сервер, приступим.

- Нам понадобится программа Denwer ( CLICK )
- Любой мод с базой данных
- Ровные руки, и свободные 15 минут.

После того как мы приготовились у уроку, мы начинаем выполнять первый пункт:

1. Устанавливаем Denwer:
- Думаю с этим у вас не будет никак проблем так как он устанавливается поэтапно, и объяснять как его установить я не буду, но если кому надо я готов помочь - если напишите в ЛС.

Переходим к второму пункту:

2. Заходим на сайт чтобы подключить саму базу данных:
- После установки у нас на рабочем столе появится три иконки - а именно "Start Denwer", "Stop Denwer", "Restart Denwer" - мы кликаем два раза на "Start Denwer" и ждем когда пропадут все консоли которые появились. И так, после того как у нас закрылись все консоли - мы заходим в наш браузер и пишем: localhost, листаем ниже и видим строчку "localhost/tools/phpmyadmin"  ( Или же просто копируем мой текст в скобках и вставляем в браузер", после того как мы зашли в наш PhpMyAdmin через Denwer - мы видим кнопку "Базы данных", клацаем на данную надпись и ничего не трогаем, после переходим в наш 3 пункт.

3. Открываем нашу папку с сервером:
- После того как мы открыли нашу папку с сервером - мы видим папку с названием "База данных", "БД", "Base",  или же база данных может находиться вообще не в папке - у каждого сервера по другому, ну не суть - мы нашли нашу базу данных, и копируем ее название - после заходим в Denwer и пишем в поле "Создать базу данных" - наше название базы данных, ну а после создаем ее - теперь переходим к третьему пункту.

4. Импортируем нашу базу данных:

- И так, после того как мы создали нашу базу данных -  в нашей левой панели появляется база данных с названием которым мы указали при создании, клацаем на название и нас перекидывает на страницу где хранятся наши таблицы и т.п, выше мы видем вкладку "Импорт" заходим в данную вкладку и после строки "Обзор вашего компьютера" мы видим что мы можем выбрать файл, клацаем на кнопку и выбираем путь к нашей базе данных которая стоит на сервере, когда мы выбрали базу данных - мы нажимаем "ОК" внизу, и наша база данных успешно установлена, теперь можно включать сервер и играть!

Если у вас по какой либо причине база данных успешно подключена но сервер не выдает диалог входа/регистрации мы делаем эти действия:

- Заходим в PAWNO - выбираем наш .pwn сервера и находим строчку


 

#define mysql_host "" // Это IP нашего хостинга - если на локалке то пишем 127.0.0.1
#define mysql_db "" // Сюда в скобки пишем НАЗВАНИЕ нашей базы данных которую мы создали в Denwer
#define mysql_user "" // Логин базы данных - если на локалке то пишем root
#define mysql_pass "" // Пароль базы данных - если на локалке то оставляем пустым.
Компилируем и так же запускаем и проверяем, вуаяля вот вам ваш сервер с подключенной базой данных...



Автор темы: Я
Тема создана специально для вашего сайта (C) PAWNO-RUS
Урок написан на скорую руку, но вполне подойдет для новичков - за все ошибки в тексте пишите в ЛС, исправлю в течение 3-х часов.
Спасибо за внимание, с вами ваш #CopyRight

P.S Если вы не поняли что и как делать, то напишите в комментарии "#хочувидеоурок" - и я запишу для вас видео урок! До скорого!

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


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

Данные бд могут не находится в моде, а в каком-нибудь отдельном файле, меня это, правда, бесит, могут напрямую указываться в функции "mysql_connect". Всё зависит от гейм мода.

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


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

@SCRIPTMAN, ну, своеобразная динамичность. Не нужно лезть вглубь мода, чтобы в случае необходимости поправить данные для подключения к базе данных.

Вот, например, часть моего конфигурационного файла:

Спойлер

/*========================================================[MAIN CONFIG]=======================================================*/
#define SERVER_HOSTING									false // hosting PC?
#define USE_ACTOR										false // use actor?

/*===========================================================[DATA]===========================================================*/
#define PROJECT_NAME									!"Server RolePlay"
#define PROJECT_URL_VK									!"vk.com/odosenok"
#define PROJECT_URL_SITE								!"yandex.ru"

#define SERVER_NAME_MODE								"MRP 4.0.1"
#define SERVER_NAME_MAP									"Criminal Russia"
#define SERVER_NAME_WEBURL								PROJECT_URL_SITE

#define PROJECT_PASSWORD_RCON							"1337"
#define PROJECT_PASSWORD								0

#define SERVER_NAME1									!"Название 1"
#define SERVER_NAME2									!"Название 2"
#define SERVER_NAME3									!"Название 3"

#define UPDATE_SERVER_NAME_TIME							(4) // tick update server name

/*=======================================================[MySQL SETTINGS]=====================================================*/
#if SERVER_HOSTING == true
	#define MYSQL_HOST									!"host"
	#define MYSQL_USER									!"user"
	#define MYSQL_PASSWORD								!"pass"
	#define MYSQL_DATABASE_MAIN							!"main"
	#define MYSQL_DATABASE_LOGS							!"logs"
#else
	#define MYSQL_HOST									!"localhost"
	#define MYSQL_USER									!"root"
	#define MYSQL_PASSWORD								!""
	#define MYSQL_DATABASE_MAIN							!"main"
	#define MYSQL_DATABASE_LOGS							!"logs"
#endif

/* main */
#define MYSQL_CHARSET									!"cp1251"
#define MYSQL_DABATASE_NAME_MAIN						"MAIN" // don't pack!
#define MYSQL_DATABASE_NAME_LOGS						"LOGS" // don't pack!

/* log */
#define TABLE_LOG_CONNECT								"log_connect"
#define TABLE_LOG_COMMAND								"log_command"
#define TABLE_LOG_CHAT									"log_chat"
#define TABLE_LOG_ADMIN									"log_admin"

/* vehicle */
#define TABLE_VEHICLES									"vehicles"
#define TABLE_VEHICLES_PLAYERS							"vehicles_players"
#define TABLE_VEHICLES_RENTS							"vehicles_rents"
#define TABLE_VEHICLES_FRACS							"vehicles_fracs"
#define TABLE_VEHICLES_DATA								"vehicles_data"
#define TABLE_VEHICLES_TYPES							"vehicle_types"
#define TABLE_VEHICLES_MEMBERS							"vehicle_members"

/* player */

/*===================================================[ANTICHEAT & SECURITY]===================================================*/
#define ANTICHEAT_WEAPON								true // anticheat of weapon
#define ANTICHEAT_AMMO									true // anticheat of ammo
#define ANTICHEAT_MONEY									true // anticheat of money
#define ANTICHEAT_HEALTH								true // anticheat of health
#define ANTICHEAT_ARMOUR								true // anticheat of armour
#define ANTICHEAT_TELEPORT								false // anticheat of teleport

#define SECURITY_CENSOR									true // activate security censor?
#define SECURITY_ADVERTISE								true // activate security advertise (IP)?

#define TIME_ANTIFLOOD_CHAT								(2)
#define TIME_ANTIFLOOD_COMMAND							(3)

#define CALLBACK_WEAPON									true
#define CALLBACK_AMMO									true
#define CALLBACK_HEALTH									true
#define CALLBACK_ARMOUR									true
#define CALLBACK_MONEY									false

/*===========================================================[LOGS]===========================================================*/
#define LOG_MYSQL_ERRORS								true // log MySQL errors
#define LOG_ADMIN										true // log admin actions?
#define LOG_CHAT										true // log chat?
#define LOG_COMMAND										true // log comamnds?
#define LOG_CONNECT										true // log connects?

#define PRINT_ADMIN_ACTIONS								false // вывод сообщений администратору о его же действиях

/*==========================================================[PLAYER]==========================================================*/
#if defined MAX_PLAYERS
	#undef MAX_PLAYERS
#endif
#define MAX_PLAYERS										(100) // max players


/*==========================================================[VEHICLE]=========================================================*/
#if defined MAX_VEHICLES
	#undef MAX_VEHICLES
#endif
#define MAX_VEHICLES									(200) // max vehicles

#define WRITE_VEHICLE_MANAGE							false // write vehicle manage information?
#define VEHICLE_SPEED_UNIT_DEFAULT						VEHICLE_SPEED_KMH // or VEHICLE_SPEED_UNIT_MPH
#define MAX_VEHICLES_ADMIN								(100)
#define VEHHEALTH_TICK_RATE								(300) // tickrate for check update vehicle health (для OnVehicleHealthChanged)
#define MAX_LENGTH_VEHICLE_NUMBER						(8) // max length vehicle number plate
#define DEFAULT_VEHICLE_NUMBER							"ТРАНЗИТ"
/*==========================================================[DESIGN]==========================================================*/
#if defined MAX_PICKUPS
	#undef MAX_PICKUPS
#endif
#define MAX_PICKUPS										(300) // max pickups

#define DEFAULT_WEATHER									(2)

 

 

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


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

@odosenok это удобно, место в самом моде можно сэкономить, но я больше к тому, что настройка данных MySQL должна находиться в моде. Для каждого по своему.

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


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

#хочувидеоурок

 

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


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

@M1xerov https://www.youtube.com/watch?v=nsiMtaowT5c 

уже давно все сделали :) 

По нему еще наверное я первый раз подключал mysql

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • Chopick
      От Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?
    • Jdjdjd
      От Jdjdjd
      Как сделать открытие закрытие ворот в Радмир рп на копии,и куд а нужно вставлять код?