====== Utiliser une base de donnée centralisée ====== ===== Principe ===== Dans le fonctionnement classique de FFcanoe, chaque poste possède sa propre base de donnée (SQLite). Le réseau est utilisé pour synchroniser les informations entre chaque poste. En cas de problème de réseau, ou de problème sur une machine, des informations peuvent être perdues sur un poste, on se retrouve alors avec des informations différentes selon le poste. Si des pénalités ont été saisies, La seule solution est de recopier/renvoyer les pénalités ou les temps manquant(e)s sur les postes qui ne les ont pas eu. Cette situation se produit en cas de plantage d'un poste, s'il redémarrer FFcanoe voir la machine complète. Pendant la durée pendant laquelle FFcanoe n'est pas en mode gestion de course, rien ne peut être reçu. Une bonne solution est de passer à une base de donnée centralisée de type Mysql. L'intérêt est de pouvoir déconnecter/reconnecter les postes FFcanoe sans perdre d'informations tant que mysql reste connecté. La course n'est créé qu'une seule fois sur un seul poste et est visible automatiquement sur tous les autres. Toutes modifications dans les inscrits, les dossards, les heures de départ, etc. sera visible depuis n'importe quel poste immédiatement : plus besoin de faire un export et de réimporter le fichier sur les autres postes ! Le réseau continue à être utilisé pour réactualiser l'affichage sur les postes. Quand on saisi une pénalité sur un poste, celui ci signale au serveur qui le signalera à tous les autres postes du réseau qui actualiseront leur affichage. Sur un poste on peut quitter la gestion de course et y revenir à souhait sans conséquence. Cela permet aussi de pouvoir faire des modifications de manche1 pendant la gestion de la manche 2 : un poste peut finir la saisie de la première manche sans bloquer le départ de la 2ème manche. Les informations d'installation et de configuration ci-dessous sont valables à partir de [[ffcanoe:versions|FFcanoe 10.1]]. ===== Configuration Mysql ===== La solution la plus simple et la plus courante si vous ne disposez pas déjà d'un serveur mysql est d'installer [[http://www.wampserver.com/|WAMP]]. ==== Installation de WAMP ==== [[http://www.wampserver.com/|WAMP]] est un acronyme qui désigne //Windows Apache Mysql Php//. Il s'agit d'un fichier unique qui permet d'installer le serveur web Apache équipé du language php et une base de donnée Mysql. PhpMyAdmin est également fourni. [[http://www.wampserver.com/dl.php|Téléchargez WAMP]] et installez le sur un poste, en général un poste qui ne servira qu'à ça, ou qui fera tourner FFcanoe en mode serveur. WAMP s'installe par défault dans c:\wamp ; vous n'avez aucun paramêtre à fournir à l'installation, vous pouvez sans problème cliquer "ok" ou "suivant" sur toutes les fenêtres. Arriver à la fin de l'installation, si vous avez laissé cochée la croix "Lauch WAMP server now" sur la dernière fenêtre avant de clicker "Finish", vous avez l'icone de WAMP qui apparait dans la zone proche de l'horloge Windows. Un click gauche permet d'ouvrir le menu d'administration : {{ :ffcanoe:documentation:image_menu_wamp.png |Le menu de WAMP}} La langue par défault est l'anglais, il est possible de passer en français avec un click-droit qui ouvre un menu avec une entrée //Languages//. Vérifiez que l'installation a fonctionné en accédant à http://localhost/ avec un navigateur ; vous devez avoir une page WAMP semblable à celle ci : {{ :ffcanoe:documentation:image_accueil_wamp.png |Page d'accueil de WAMP}} ==== Préparation de la base FFcanoe ==== Commencez par arrêter WAMP : clickez "Arrêter les services" dans le menu WAMP : {{ :ffcanoe:documentation:image_menu_wamp.png |Le menu de WAMP}} Télécharger la base FFcanoe : [[http://www.agil.fr/ffcanoe/BaseMySQL_ffcanoe.zip|BaseMySQL_ffcanoe.zip]]. Décompresser le dossier (click droit, //Extraire tout//) dans le dossier //data// de Mysql, par exemple pour la version actuelle et une installation par défault //C:\wamp\bin\mysql\mysql5.1.36\data// : {{ :ffcanoe:documentation:extraction_bdd_wamp.png |Installer la base FFcanoe pour Mysql}} (**Pour info**, voici le {{:ffcanoe:schema_de_base_de_donnee_mysql.zip|script de création de la base au format SQL}}) ==== lower_case_table_names ==== Enfin il faut définir un paramêtre dans le fichier de configuration Mysql **tout à la fin du fichier** : lower_case_table_names = 2 **PAS** comme indiqué sur les 2 captures ci-dessous : {{:ffcanoe:documentation:mysql:acces_my_ini.png|}}{{:ffcanoe:documentation:mysql:lower_case_table_names.png|}} Relancer les services WAMP en repassant par le même menu, la base Mysql est prête. ==== Autoriser les accès depuis le réseau ==== Mysql n'autorise pas les accés par le réseau par défault. Il faut lui demander d'accepter les connections à la base en provenance des autres postes du réseau : * Connectez vous sur [[http://localhost/phpmyadmin/]] * Cliquez l'onglet //SQL// * Exécutez la requête : //GRANT ALL PRIVILEGES ON *.* to root@'%';// comme indiqué ci dessous : {{ :ffcanoe:documentation:mysql_grant_network.png |Autoriser les accès depuis le réseau}} ===== Configurer FFCanoe pour MySQL ===== Le fichier de configuration ffcanoe.ini qui se trouve dans le dossier d'installation de FFcanoe permet de choisir la base de données et de définir les paramètres de connexion, par exemple : [BDD] Engine=2 [MYSQL] Server=servername_or_ip BDD=... USER=... PWD=... Ce code se place normalement juste après le "Alive". La partie [MYSQL] est facultative s'il n'y a pas de mot passe (installation WAMP par défault) et que vous êtes sur la même machine que Mysql, le Engine=2 devrait suffir ! Remarque : * Engine=1 => SQLITE * Engine=2 => MYSQL * Engine=3 => ODBC Attention : FFcanoe doit être fermé quand vous modifiez ce fichier ! Vous pouvez lancer FFCanoe et vérifier le //A propos de ffcanoe... // dans le menu //?// donne les informations sur la base SQL utilisée en haut à droite, en dessous du numéro de version FFcanoe : {{ :ffcanoe:documentation:a_propos_mysql.png |FFcanoe indique dans "A propos" l'utilisation de Mysql}} Pensez à configurer les autres machines du réseau en modifiant le FFcanoe.ini en indiquant l'adresse ip du serveur où est installé WAMP. En cas de problème [[ffcanoe:documentation:mysql:firewall|vérifiez que le firewall de windows est ouvert]] sur le port 3306 sur la machine qui héberge WAMP, et vérifiez que vous avez bien effectué la procédure indiquée à la fin de l'installation de WAMP pour ouvrir l'accès aux autres postes du réseau.