Kwizzy Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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 ! 3
angelus76 Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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 ^^
Kwizzy Posté(e) le 24 juin 2015 Auteur Posté(e) le 24 juin 2015 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é !
angelus76 Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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 ) "
Kwizzy Posté(e) le 24 juin 2015 Auteur Posté(e) le 24 juin 2015 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.
angelus76 Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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 ;)
Kwizzy Posté(e) le 24 juin 2015 Auteur Posté(e) le 24 juin 2015 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 !
MinePlugins Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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
angelus76 Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 mais lire et écrire un fichier prend plus de place et de temps :O Non
Voserv Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 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 ?
angelus76 Posté(e) le 25 juin 2015 Posté(e) le 25 juin 2015 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 2
Kwizzy Posté(e) le 25 juin 2015 Auteur Posté(e) le 25 juin 2015 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..
MinePlugins Posté(e) le 26 juin 2015 Posté(e) le 26 juin 2015 Pourquoi le tuto est epinglé ? (Tes tuto en générales) #SimpleRMQ
Kwizzy Posté(e) le 26 juin 2015 Auteur Posté(e) le 26 juin 2015 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)
Krown0s Posté(e) le 26 juin 2015 Posté(e) le 26 juin 2015 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
Yvanpelican Posté(e) le 3 octobre 2015 Posté(e) le 3 octobre 2015 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
Waggo Posté(e) le 4 novembre 2016 Posté(e) le 4 novembre 2016 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
ExtraCreep Posté(e) le 6 novembre 2016 Posté(e) le 6 novembre 2016 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 :(
Waggo Posté(e) le 8 novembre 2016 Posté(e) le 8 novembre 2016 Ne remonte pas les discussions vieille de plus d'un an ! C'est mal :( Pardon j'avais pas vue je suis tombé au hasards dessus
GauvainWizard Posté(e) le 8 novembre 2016 Posté(e) le 8 novembre 2016 Salutations, C'est pas super grave étant donné que c'est un tutoriel et que ça pourra aider tout le monde ! Gauvain
zouzou26140 Posté(e) le 13 avril 2017 Posté(e) le 13 avril 2017 Bonjour, super Tuto mais la seul question Que j'ai c'est, comment installer mySQL sur un vps ?
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant