Aller au contenu

Messages recommandés

Posté(e)

I Les prérequis :

 

Pour utiliser votre base de données, il vous faut un minimum d’expérience là-dedans !

 

Ce tutoriel sera théorique étant donné que je n’ai pas de base de données que je peux utiliser comme exemple en ce moment.

 

- Un serveur avec MYSQL SERVER

- PHPMYADMIN * ( Pas nécessaire si vous connaissez les commandes sous putty )

- SQLibrariy http://dev.bukkit.org/bukkit-plugins/sqlibrary/

- Skript

II Étape par étape :

 

Je ne sais pas si vous avez remarqué, mais vous avez un fichier config.sk dans votre dossier skript

( plugins/skript/config.sk ) !

 

Donc première étape vous vous dirigez vers ce dossier et vous l’ouvrez.

 

Vous descendez, et vous vous arrêtez au premier mot désignant une base de données :

 

databases:
   database 1:

       type: MySQL

       pattern: Sync.* #Ici les variables avec {Sync.+ une information} iront dans votre BDD.

       monitor changes: true
       monitor interval: 5 seconds #Sauvegarde toutes les 5 secondes dans la base de données

       # == MySQL configuration ==
       host: localhost
       port: 3306
       user: USER #User de la BDD Souvent root
       password : MDP #Le mot de passe
       database: Skript #La base de donnée



 database 2:

       type: CSV

       pattern: faction.* # Ici toutes les variables avec {faction.+ une information} iront dans le .csv.

       file: ./plugins/Skript/variables.csv

       backup interval: 30 minutes


#Exemple : 
#set {sync.variable} to nimber of all player online
# Cette variable ira dans la BDD !
#set {variable} to nimber of all player online
#Cette variable n'ira null part 
#set {faction.variable} to number of all player online
#Cette variable ira dans le csv



version: 2.1.2

 

Une fois tout cela configuré, vous vous rendrez sur votre phpmyadmin ( votresite.fr/phpmyadmin ).

Depuis la page d’accueil de phpMyAdmin, un module vous permet de créer une base de données.

 

Entrez simplement un nom pour cette nouvelle base (EX : « Skript » ou « Sync ») sans accents ni espaces puis cliquez sur le bouton « Créer ».

Laissez toutes les options comme elles sont proposées par défaut.

Vous installez ensuite SQLibrary dans votre dossier « plugins » et vous redémarrer, normalement vous devriez voir une table apparaître dans la base de données antérieurement créer.

Maintenant si vos serveurs relier sous bungeecord utilisent cette base de données « Skript », vous pourrez communiquer d’un serveur A une information B vers un serveur C l’information B.

 

Exemple, le nombre de connectés.

Les stats…

 

C'est la fin de ce tutoriel, qui je pense aidera pas mal de monde !

  • J'aime 3
Posté(e)

comme je disais sur un autre post.

certaine variable reste en mémoire un petit moment, ce qui peut générer des problèmes

 

Ex: lié l’économie sur les deux serveur, si un joueur a reçue de l'argent ou en as dépenser, qu'ont stock sont solde dans la BDD pour le mettre a jours sur l'autre serveur, il ce peut qu'il y ais un délais avant qu'il voie sont BON solde.

j'en ais fait l’expérience ^^

 

Autres Exemple qui serais certainement utiliser, Lié un coffre virtuelle entre les deux serveurs, la encore en passent d'un serveur a l'autre en changeant les items du coffres, il peut ce passer 20 secondes avant que le coffre soit bien tel qu'il doit être.

 

il y as un problème entre les variable stocker en mémoire pour mettre a jour la BDD, et du coup une désynchronisation.

 

connait tu un moyen de palier a ce problème ?

 

sinon stocker dans la BDD, peut être pratique si ont veut par la suite afficher des information sur un site Web, par contre les information stocker dans la BDD avec Skript sont compresser (BLOB) donc bien décompresser les donnée avant de les afficher ^^ ( il existe une méthode en php ;) )

 

Autre point important,

entre des variable stocker dans un CSV et des variable stocker dans une BDD, le temps de récupération des données ( variable ) et plus rapide avec un fichier CSV.

donc si ont as des variable qui sont checké toutes les X secondes, il vaux mieux opté pour un CSV, surtout que Mysql ou Sql vont peut être avoire mal a la tête si il y as une 100ene de joueurs ^^

Posté(e)
comme je disais sur un autre post.

certaine variable reste en mémoire un petit moment, ce qui peut générer des problèmes

 

Ex: lié l’économie sur les deux serveur, si un joueur a reçue de l'argent ou en as dépenser, qu'ont stock sont solde dans la BDD pour le mettre a jours sur l'autre serveur, il ce peut qu'il y ais un délais avant qu'il voie sont BON solde.

j'en ais fait l’expérience ^^

 

Autres Exemple qui serais certainement utiliser, Lié un coffre virtuelle entre les deux serveurs, la encore en passent d'un serveur a l'autre en changeant les items du coffres, il peut ce passer 20 secondes avant que le coffre soit bien tel qu'il doit être.

 

il y as un problème entre les variable stocker en mémoire pour mettre a jour la BDD, et du coup une désynchronisation.

 

connait tu un moyen de palier a ce problème ?

 

sinon stocker dans la BDD, peut être pratique si ont veut par la suite afficher des information sur un site Web, par contre les information stocker dans la BDD avec Skript sont compresser (BLOB) donc bien décompresser les donnée avant de les afficher ^^ ( il existe une méthode en php ;) )

 

Autre point important,

entre des variable stocker dans un CSV et des variable stocker dans une BDD, le temps de récupération des données ( variable ) et plus rapide avec un fichier CSV.

donc si ont as des variable qui sont checké toutes les X secondes, il vaux mieux opté pour un CSV, surtout que Mysql ou Sql vont peut être avoire mal a la tête si il y as une 100ene de joueurs ^^

 

Le temps de récupérer la variable sur la base de donnée est instantanée, mais le" monitor interval: 5" c'est que ça actualise les variables dans base de donnée, si tu as pas beaucoup de variables met sur 1 mais c'est pas conseillé !

Posté(e)
Le temps de récupérer la variable sur la base de donnée est instantanée

non il faut prendre en compte qu'il y as une connexion a la BDD, et a chaque recuperation de variable = une connexion a la BDD.

c'est pas du Keep-Live.

 

donc la rapidité entre CVS et BDD c'est CVS qui gagne car le traitement d'un fichier et plus rapide qu'une BDD

 

bon ont chipote car c'est sur une diffèrence infime qu'ont ne perçois pas ^^ mais sur des multiples requêtes sa peut commencer a ce ressentir, surtout pour la BDD, qui pourrais crashé et par la même occasion crashé le serveur SQL <- et sa peut faire pas mal de dégât.

 

pour la synchro, je vais me pencher sur ma config, mais du coup je suis pas trop fan, c'est pourquoi je bosse sur un Skript qui utiliserais des fichier .yml pour faire le lien entre mes serveurs " .yml = fichier = traitement plus rapide ( troll ) "

Posté(e)
non il faut prendre en compte qu'il y as une connexion a la BDD, et a chaque recuperation de variable = une connexion a la BDD.

c'est pas du Keep-Live.

 

donc la rapidité entre CVS et BDD c'est CVS qui gagne car le traitement d'un fichier et plus rapide qu'une BDD

 

bon ont chipote car c'est sur une diffèrence infime qu'ont ne perçois pas ^^ mais sur des multiples requêtes sa peut commencer a ce ressentir, surtout pour la BDD, qui pourrais crashé et par la même occasion crashé le serveur SQL <- et sa peut faire pas mal de dégât.

 

pour la synchro, je vais me pencher sur ma config, mais du coup je suis pas trop fan, c'est pourquoi je bosse sur un Skript qui utiliserais des fichier .yml pour faire le lien entre mes serveurs " .yml = fichier = traitement plus rapide ( troll ) "

 

C'est pas con ton idée de remplacer la BDD par un fichier .yml :) mais je crois que tu pourras pas aller au-delà des plugins.

Essaie, mais je te promet rien :/.

 

Pour l'histoire de la synchronisation, l'histoire de la base de donnée c'est surtout pour les stats ou quoi.

C'est surtout pour des variables qui n'ont pas besoin d'être update en live.

Posté(e)
ba le systeme avec les .yml c'est utiliser WildSkript

c'est capable d’interroger des fichier .yml ailleurs que dans le dossier du serveur minecraft ;)

 

Ah d'accord je savais pas !

Posté(e)

Ouais, mais lire et écrire un fichier prend plus de place et de temps a ce faire, c'est pour cela que si tu veux faire des stats utilise ou inspire-toi de mon Skript SkStats pour un sync régulier et un sync au moment ou le joueur se déconnecte

Posté(e)

Bonjour,

Je n'ai juste pas compris cette partie:

"pattern: Sync.* #Ici les variables avec {Sync.+ une information} iront dans votre BDD."

Car ce tuto est très utile, mais je ne comprends pas cette partie. Un exemple s'il vous plaît ?

Posté(e)

avec

pattern: Sync.*

sa veux dire que

{Sync.variable} serras enregistrer dans la BDD

et

{variable} non

 

donc toutes tes variable commencent pas Sync. => iront dans la BDD

  • J'aime 2
Posté(e)
avec

pattern: Sync.*

sa veux dire que

{Sync.variable} serras enregistrer dans la BDD

et

{variable} non

 

donc toutes tes variable commencent pas Sync. => iront dans la BDD

 

C'est exactement ça :)

Je vais faire un exemple..

Posté(e)
Pourquoi le tuto est epinglé ? (Tes tuto en générales) #SimpleRMQ

 

Parce que c'est des des tutoriels que tu ne trouves pas forcément du premier coup :)

(Quand tu es débutant)

Posté(e)
Pourquoi le tuto est epinglé ? (Tes tuto en générales) #SimpleRMQ

Bonjour,

Les sujets épinglés, représente pour nous les meilleurs sujets, donc si nous trouvons qu'un sujet vaut le coup d'être épinglé, nous le ferons.

Cordialement,

chronoos89

  • 3 mois après...
Posté(e)

J'ai un problème j'ai bien une base de donné mais quand je l'indique dans la config skript il me dit ça

[20:55:23 ERROR]: #!#!
[20:55:23 ERROR]: #!#! ===!!!=== Skript variable load error ===!!!===
[20:55:23 ERROR]: #!#! Unable to load (all) variables:
[20:55:23 ERROR]: #!#! Cannot connect to the database 'database 1'!
[20:55:23 INFO]: [skript] You're currently running the latest stable version of
Skript.
[20:55:24 ERROR]: [skript][MySQL] Could not establish a MySQL connection, SQLExc
eption: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driv
er has not received any packets from the server.
[20:55:24 ERROR]: #!#! Cannot connect to the database 'MySQL example'!
[20:55:24 ERROR]: #!#!
[20:55:24 ERROR]: #!#! Skript will work properly, but old variables might not be
available at all and new ones may or may not be saved until Skript is able to c
reate a backup of the old file and/or is able to connect to the database (which
requires a restart of Skript)!

 

j'ai mit dans ma config ceci

[spoiler=config]

databases:
   # Databases to store variables in. These can either be used as a simple one-server-storage
   # where variables are written constantly but only read at server start,
   # or as a connection between multiple servers by monitoring the database(s) for changes.
   #
   # You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly.
   #
   # To be able to use a database you'll need to download the plugin 'SQLibrary' from http://dev.bukkit.org/server-mods/sqlibrary/files/
   # and install it in your server's plugin directory like other plugins.
   #
   # Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect.

   # Each database definition must be in a separate section. You can choose any name for the sections, as long as it's not already used.
   database 1:
       # an example database to describe all possible options.

       type: MySQL
       # The type of this database. Allowed values are 'CSV', 'SQLite', 'MySQL' and 'disabled'.
       # CSV uses a text file to store the variables, while SQLite and MySQL use databases, and 'disabled' makes Skript ignore the database as if it wasn't defined at all.

       pattern: db.*
       # Defines which variables to save in this database.
       # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in this database,
       # or use '.*' (the default value) to store all variables here (recommended for the last database in this list, as otherwise some variables might not be saved).
       # Please note that variables are only stored in one database, and databases are checked from top to bottom,
       # e.g. if a variable matches the topmost database's pattern it will be saved there and nowhere else.
       # BTW: Patterns are checked in a separate thread, i.e. your server likely won't run slower when using complicated patterns.

       monitor changes: false
       monitor interval: 20 seconds
       # If 'monitor changes' is set to true, variables will repeatedly be checked for updates in the database (in intervals set in 'monitor interval').
       # ! Please note that you should set 'pattern', 'monitor changes' and 'monitor interval' to the same values on all servers that access the same database!

       # == MySQL configuration ==
       host: 192.168.1.42# Where the database server is located at, e.g. 'example.com', 'localhost', or '192.168.1.100'
       port: 3306# 3306 is MySQL's default port, i.e. you likely won't need to change this value
       user: root
       password: -------
       database: Uchrun# The database to use. Skript will automatically create a table 'variables21' in this database if it doesn't exist
       # (If the table exists but is defined differently that how Skript expects it to be you'll get errors and no variables will be saved and/or loaded)

       # == SQLite/CSV configuration ==
       file: ./plugins/Skript/variables.db
       # Where to save the variables to. For a CSV file, the file extension '.csv' is recommended, but not required, but SQLite database files must end in '.db' (SQLibrary forces this).
       # The file path can either be absolute (e.g. 'C:\whatever\...' [Windows] or '/usr/whatever/...' [unix]), or relative to the server directory (e.g. './plugins/Skript/...').

       backup interval: 2 hours
       # Creates a backup of the file every so often. This can be useful if you ever want to revert variables to an older state.
       # Variables are saved constantly no matter what is set here, thus a server crash will never make you loose any variables.
       # Set this to 0 to disable this feature.


   MySQL example:
       # A MySQL database example, with options unrelated to MySQL removed.

       #type: disabled # change to line below to enable this database
       type: MySQL

       pattern: synced_.*# this pattern will save all variables that start with 'synced_' in this MySQL database.

       host: 192.168.1.42
       port: 3306
       user: root
       password: -------
       database: Uchrun

       monitor changes: true
       monitor interval: 20 seconds

 

 

  • 1 an après...
Posté(e)
Hello, j'ai deux petite question @Kwizzy

Si on ne possède pas de site, comment fait-on ?

Pour le Host je dois laisser localhost ou mettre l'ip du vieux Hamachi x') de mon serveur ?

 

Si ton serveur est sur ton pc tu peux utliser wamp serveur c'est un serveur web avec mysql et phpmyadmin intégré

 

Et a ce moment la dans host tu mes localhost

Posté(e)
Si ton serveur est sur ton pc tu peux utliser wamp serveur c'est un serveur web avec mysql et phpmyadmin intégré

 

Et a ce moment la dans host tu mes localhost

Ne remonte pas les discussions vieille de plus d'un an ! C'est mal :(

  • 5 mois après...

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.