MySQL serveris

Iš GTA-Online Wikipedia.
Peršokti į: navigaciją, paiešką
Autorius: Blantas
2012-05-29

Turinys

MySQL plugino įdiegimas

MySQL tipo pluginų įdiegimo procesas nėra sudėtinga procedūra. Ją sudaro plugino bylų įkėlimas į reikiamą aplanką bei tam tikrų tekstinių bylų redagavimas, nurodant, kur tos bylos yra.

MySQL Plugin R7 (BlueG)

Norėdami įsidiegti šį pluginą, jūs turite atsisiųsti patį pluginą pritaikytą jūsų naudojamai operacinei sistemai bei funkcijų biblioteką. Visa tai galite rasti oficialioje šio plugino temoje, paspaudę čia arba šiomis tiesioginėmis nuorodomis:

Atsisiuntę nurodytas bylas, pačio plugino archyvą išskleiskite ir gautą bylą „mysql.dll“ arba „mysql.so“ įkelkite į savo SA-MP serverio „plugins“ aplanką. Tekstinę bylą „a_mysql.inc“ perkelkite prie savo visų naudojamų bibliotekų (dažniausiai jos yra jūsų naudojamo PAWNO redaktoriaus aplanke). Galiausiai atsidarę „server.cfg“ bylą, kurioje surašyti serverio nustatymai, suradę „plugins“ eilutę, prie jos prirašome įkeltos plugino bylos pavadinimą:

  • Windows
plugins mysql
  • Linux
plugins mysql.so

MySQL Plugin 2.1.1 (StrickenKid)

...

Pasiruošimas darbui su MySQL serveriu

Norint, jog San Andreas Multiplayer serveris susijungtų su MySQL serveriu sėkmingai bei darbas tarp abiejų serverių vyktų sklandžiai, būtina sureguliuoti MySQL pluginą tinkamai. Pagrindinių nustatymų nėra daug, todėl visa prisijungimo bei kontroliavimo eiga yra gana paprasta. Kuriant ryšį su MySQL serveriui, būtina turėti šiuos duomenis:

  • MySQL serverio adresas
  • MySQL serverio vartotojo duomenys
    • Vartotojo vardas
    • Vartotojo slaptažodis
  • Duomenų bazės MySQL serveryje pavadinimas

Turint šiuos duomenis ir esant įsitikinus, jog pats MySQL serveris stabilia veikia, galima jungtis prie pačio serverio. Jungimosi procesą sudaro prisijungimas prie pačio MySQL serverio bei jo tam tikrų plugino nustatymų redagavimas. Jei naudojamo plugino galimybės leidžia, būtina nustatyti šiuos parametrus:

  • Patikrinimo rėžimo būsena (plugino vykdomų operacijų bei jų rezultatų pranešimas)
  • Siunčiamų užklausų bei gaunamų rezultatų simbolių koduotė

MySQL Plugin R7 (BlueG)

Naudojant šį MySQL pluginą, prisijungimo prie MySQL serverio kodas atrodys taip:

#include <a_samp>
#include <a_mysql>
 
#define MYSQL_ADRESAS          		"127.0.0.1"
#define VARTOTOJO_VARDAS        	"root"
#define VARTOTOJO_SLAPTAZODIS   	""
#define DUOMENU_BAZE       		"samp_serveris"
 
main()
{
}
 
public OnGameModeInit()
{
	mysql_debug(1);
	mysql = mysql_connect(MYSQL_ADRESAS, VARTOTOJO_VARDAS, DUOMENU_BAZE, VARTOTOJO_SLAPTAZODIS);
	mysql_set_charset("utf8");
	return 1;
}
 
public OnGameModeExit()
{
	mysql_close();
	return 1;
}

Šiame pavyzdyje, pilnai įsijungus gamemode'ui, t.y. OnGameModeInit callback'e, panaudoję mysql_debug funkciją nurodome, jog pluginas visų vykdomų operacijų pranešimus įrašytų į specialią bylą SA-MP serverio aplanke „mysql_log.txt“. Toliau esančioje funkcijoje įvykdome patį prisijungimą prie MySQL serverio, konkrečiai prie duomenų bazės „samp_serveris“, su funkcija mysql_connect. Jei jungiantis prie MySQL serverio jums reikia nurodyti serverio portą, jį rašykite po vartotojo slaptažodžio kai naują sveikojo skaičiaus tipo parametrą. Tolimesniame žingsnyje su funkcija mysql_set_charset nurodome, jog tarp SA-MP bei MySQL serverių naudojami duomenys turi „utf8“ simbolių koduotę, t.y. tokią, kuri palaiko nestandartinius, lietuviškus, simbolius. Galiausiai, išjungiant gamemode'ą (callback'as OnGameModeExit) nurodome, jog ryšys tarp SA-MP bei MySQL serverių būtų uždarytas.

Visą prijungimo bei konfigūravimo procesą atlikus teisingai bei sėkmingai prisijungus prie MySQL serverio, „mysql.log“ byloje turėtumėte pamatyti tokią informaciją:

[17:46:58]  
[17:46:58]  ** MySQL Debugging enabled (05/29/12)
[17:46:58]  
[17:46:58] >> mysql_connect(127.0.0.1, root, samp_serveris, ******) on port 3306
[17:46:58] CMySQLHandler::CMySQLHandler() - constructor called.
[17:46:58] CMySQLHandler::CMySQLHandler() - Connecting to "127.0.0.1" | DB: "samp_serveris" | Username: "root"
[17:46:58] CMySQLHandler::Connect() - Connection was successful.
[17:46:58] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[17:46:58] >> mysql_set_charset( Connection handle: 1 )
[17:47:00] >> mysql_ping( Connection handle: 1 )
[17:47:00] CMySQLHandler::Ping() - Connection is still alive.
[17:47:00] >> mysql_close( Connection handle: 1 )
[17:47:00] CMySQLHandler::~CMySQLHandler() - deconstructor called.
[17:47:00] CMySQLHandler::FreeResult() - The result is already empty.
[17:47:00] CMySQLHandler::Disconnect() - Connection was closed.
[17:47:00] Unloading Plugin

MySQL Plugin 2.1.1 (StrickenKid)

Šio plugino naudojimo ypatumai yra gana identiški anksčiau aptartam pluginui. Kodas leidžiantis sėkmingai sujungti SA-MP bei MySQL serverius atrodys taip:

 

Informacijos siuntimas į MySQL serverį

Asmeniniai įrankiai
San Andreas Multiplayer