Aller au contenu
Voserv

Les Bases de donnée

Messages recommandés

Bonjour

 

Après de TRÈS NOMBREUSES demandes, je fais enfin un petit tutoriel très complet pour vous apprendre à mettre en place une base de donnée et comment ça marche.

 

I/C'est quoi une Base de Donnée ? (BDD):

Une BDD c'est là où vous pouvez commniquer des variables d'un serveur à un autre. Par exemple, vous pouvez transférer des variables d'un serveur à un autre, ce qui fera que vos serveurs seront reliés.

En quoi c'est utile ?, imaginons vous faites un Minigames eh bien vous pouvez faire qu'on achète des kits au hub et qu'ils se débloquent sur les autres serveurs. Après les possibilités sont infinies c'est juste un exemple !

 

II/Requis pour une BDD:

Pour avoir une BDD, il vous faudra déja:

  • Une machine dédiée
  • BungeeCord
     
  • Skript (évidemment)
  • Une base de donnée (MySQL par exemple)
     
  • SQLibrary (Un plugin nécéssaire)

Les deux premiers points sont évident mais je les précise quand même. Si vous avez déja vos serveurs prêt avec BungeeCord tant mieux, sinon je vous invite à mettre en place votre BungeeCord avant de continuer ce tutoriel. Si vous avez tout ce qu'il faut, nous pouvons passer à l'étape 3.

 

III/Mettre en place une BDD:

D'abord il vous faudra installer le plugin SQLibrary disponible ici: dev.bukkit.org/bukkit-plugins/sqlibrary/

Il faut que ce plugin soit installé sur tous les serveurs que vous voulez relier à votre base de donnée. Après avoir

installé ce plugin, rendez vous dans le dossier de votre plugin Skript (dans plugins). Vous verrez un fichier

nommé config.sk, nous allons le regarder de plus près. Vous devrez vous rendre plus bas, vous verrez une

section nommée "database":

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Et là vous voyez en dessous de database la section database 1. C'est là que nous allons configurer. Je vais déja vous expliquer chaque configuration:

  • Type: C'est la première ligne. Là vous devrez mettre le type de votre base de donnée, par exemple type: MySQL

  • Pattern: Là vous devrez mettre un préfix. Dans notre exemple c'est db.*. En gros, toutes les variables commençant par db. seront sauvgardées, par exemple: {db.%player%.money} sera sauvgardé car la variable commence par db. Par contre si ma variable est écrite comme cela: {money.%player%} elle ne sera pas sauvgardée. Vous pouvez dans "pattern" changer en ce que vous voulez, par exemple pattern: test.*. TRES IMPORTANT: Il est très important que "*" soit indiqué comme dans db.* sinon cela ne marchera pas.

  • Montiro Changes: Mettez de préférence en "true". Cela va servir à activer que les serveurs s'actualisent.

  • Monitor Interval: Là, vous devez mettre un délai (pas trop court pour ne pas faire laguer). Par exemple 20 seconds. Là si je met 20 secondes, la base de donnée va actualiser les serveurs toutes les 20 secondes.

Ensuite vous devrez configurer votre MySQL juste en dessous:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Je vais alors vous présenter chaque point:

  • host: Vous devrez mettre l'ip de votre serveur par exemple 5.120.230.11. Notez que si vous êtes sur Multicraft, vous devez laisser localhost.

  • port: Vous devrez indiquer le port. Mais si vous êtes sur MySQL, inutile de changer le port.

  • user: Vous devez rentrer l'identifiant de votre base de donnée.

  • password: Là aussi, vous rentrez le mot de passe de votre base de donnée MySQL

  • database: Connectez-vous sur votre base de donnée (sous PhpMyAdmin), et normalement à votre gauche vous verrez des "tables", et bien rentrez le nom (le chiffre). La plupart du temps (je ne suis pas sûr si c'est pour tout le monde), le nom de la table est le même que l'utilisateur. Par exemple, dans mon exemple, user et database sont "7".

Après avoir tout configuré, faites un reload. Je vous invite aussi à regarder votre console en même temps qui vous indiquera si il y a des problèmes de connection. Si vous n'avez aucun message d'erreure dans la console, cela veut dire que tout fonctionne. Pour vérifier, rendez vous dans votre BDD, et normalement si tout fonctionne comme prévu, vous verrez à votre gauche une table nommée "variable21".

Ensuite vous copiez/collez votre config.sk sur tous les serveurs pour que cela fonctionne, reloadez et ce sera fini ! Pour que vos variables soient sauvgardées dans votre base de donnée il vous suffira juste de les nommer comme votre pattern:.

Par exemple si dans pattern, vous avez laissé db.*, alors toutes les variables commençant par db., comme {db.test} seront sauvgardées !

 

Cordialement, MCVoserv

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ce tuto très bien expliqué ! Mais j'aimerais savoir si il y a moyen que quand on se connecte il vérifie automatiquement (ex: sur un serveur tu as gagné 100 coins (mini-jeux) puis ca te TP au lobby mais la base de donnée n'es pas refresh... Il y a moyen qu'on refresh juste une variable {db.money.%player%} ?)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok pour la money c'est pas grave un petit delay mais par exemple pou un mini-jeux c'est quand même plus pratique de savoir combien il y a de joueurs dedans instantanément...

Partager ce message


Lien à poster
Partager sur d’autres sites

Je propose a ceux que cela interesse d'associer une base de donnee (pour des grosses variables lentes) avec un envoie de commande (petite variables rapides) que j'ai fait en tuto. Cela permettre d'actualiser selon les desirs :D

 

Je te reprends direct, j'ai meme pas encore lu xD, Bungeecord n'est pas du tout obligatoire :D

Partager ce message


Lien à poster
Partager sur d’autres sites

La vie lavie lavie lavi !

Bref. Je viens de decouvrir un truc :o

Je ne savais pas que c'etait possible aussi simplement en fait, je suis debile...

Moi je pensais surtout au tuto SkQuery,

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Bon deux manieres distinctes qui auront leurs avantages je suppose :p

Merci d'avoir pris le temps d'ecrire cela :D <3

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

J'ai peut-être fait une erreur par rapport à BungeeCord, car à mon avis il est nécéssaire (logiquement...). Et derien cela me fait plaisir de faire des tutoriels complets.

Partager ce message


Lien à poster
Partager sur d’autres sites
J'ai peut-être fait une erreur par rapport à BungeeCord, car à mon avis il est nécéssaire (logiquement...). Et derien cela me fait plaisir de faire des tutoriels complets.

BAh nan :o

Apres si tu creer une BDD pour partager entre serveurs avec Bungee Bah oui ile te faut Bungee mais c'est pas obligatoire, la BDD peut te servir de stockage.

Partager ce message


Lien à poster
Partager sur d’autres sites

Très bon tutoriel, merci

Je connaissais un peu cette possibilité de Skript mais genre si je mets:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Est-ce que la monnaie changera sur tout les serveurs reliés?

Aussi, ce serait bien que tu nous montre un peu des exemples dans Skript :)

Partager ce message


Lien à poster
Partager sur d’autres sites
Est-ce que la monnaie changera sur tout les serveurs reliés?

Elle changera lors de l'actualisation de la base de donnees :D

C'est comme une variable, mais universelle sur tout ce qui utilise la BDD :D

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai trouvé l'effet SQL Update de skQuery, c'est très utile mais juste, dans %text% faut mettre le nom de la base de la config de Skript? Et aussi, ça Update toutes les variables?

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites
J'ai trouvé l'effet SQL Update de skQuery, c'est très utile mais juste, dans %text% faut mettre le nom de la base de la config de Skript? Et aussi, ça Update toutes les variables?

Non cela n'es pas pour la meme chose, ce que tu regardes c'est pour du SQL TOTALEMENT avec SkQuery, je vais essayer de l'utiliser et je ferais un tuto.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Cela le fait automatiquement dès que tu fait par exemple une cmd qui fait "add 1 to {db.test}"

 

Ducoup si j'ai bien compris, il faut mettre dn dans la variables c'est sa ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.