Passer au forum
Elephant avec base ...
 
Notifications
Retirer tout

[Fermé] Elephant avec base de données externe

2 Messages
2 Utilisateurs
0 Réactions
827 Vues
V1nz
Inscrit : 30.05.2008
PokerStrategist

Bon vu que j'ai perdu presque une heure là dessus, je vous explique comment j'ai fait; même si ça n'aide qu'une seule personne, ça sera déjà pas mal

Je souhaitais installer postgresql sur un autre ordinateur que celui où je joue au poker.
Ceci offre plusieurs avantages:
-moins de ressources utilisées sur l'ordi où vous jouez
-possibilité de jouer sur plusieurs ordis, en ayant toujours une base de données parfaitement à jour
-autres avantages potentiels que je ne détaille pas ici car pas testés et peut être pas très honnêtes... :transpire:

J'ai donc installé postgresql sur une machine qui tourne sous ubuntu 10.04
Vous trouverez tout ce qu'il faut pour installer postgresql sur ubuntu ici: http://doc.ubuntu-fr.org/postgresql
J'ai créé sur le serveur postgresql un utilisateur elephant, avec un mot de passe et une base de données.

Premier problème: au début elephant disait ne pas arriver à se connecter à postgreSQL.
En fait, c'est parce que, par défaut, postgresql n'accepte pas de connexions d'un autre ordinateur que celui où il tourne.
Pour qu'il accepte, il faut modifier deux fichiers de configuration de postgresql:
1 - dans /etc/postgresql/8.4/main/pg_hba.conf, rajouter une ligne comme ça:

host all all 192.168.1.26/32 md5

en remplaçant 192.168.1.26 par l'adresse IP du PC sur lequel tournera elephant.
Il faut rajouter une ligne pour chaque PC depuis lequel vous voulez lancer elephant;
sinon vous pouvez toujours indiquer une plage d'adresses, pour autoriser la connexion
depuis tous les pcs du réseau local par exemple chez moi ça donne ça:

host all all 192.168.1.0/24 md5

Voilà, ça c'était le premier fichier. N'oubliez pas de sauvegarder les modifs!

2- le fichier /etc/postgresql/8.4/main/postgresql.conf
Chercher la ligne listen_addresses = 'localhost' et remplacez par listen_addresses = '*'
Ainsi, le serveur acceptera les connexions sur toutes les interfaces réseau. Sauvegardez le fichier.

Voilà, on a bien configuré postgresql, il faut pas oublier de le redémarrer:

/etc/init.d/postgresql restart (dans un terminal bien sûr)

Et c'est bon!

Maintenant, on lance elephant.
Si vous venez de l'installer, il va vous proposer d'installer aussi postgresql.
Dites lui non.

Vous arrivez alors sur la fenetre "créer nouvelle base de données".
Renseignez le nom et le mot de passe de l'utilisateur postgresql que vous avez créé.
cliquez sur "afficher les paramètres avancés"
dans le champ "serveur" mettez simplement l'ip du pc qui héberge le serveur postgresql
Normalement, le numéro de port n'est pas à changer: 5432.

Maintenant, le truc bizarre: dans le champ du nom de la base de données,
si vous mettez le nom de la base que vous avez créée, et que vous cliquez sur "Tester la configuration",
normalement, vous obtenez le message "La connexion avec la base de données a été correctement réalisée".

Mais si vous cliquez "ok" en bas, pour confirmer l'ulilisation de cette base,
elephant ne sera pas content: "La connexion avec la base de données a échoué! Veuillez vérifier que postgreSQL fonctionne et que les paramètres sont corrects." ?(

D'un autre côté, si vous mettez un nom de base de données qui n'existe pas, le test de configuration va échouer.

J'ai perdu du temps avec ça; en fait, lorsqu'on fait le test de connexion, il faut une base de données qui existe sur le serveur,
sinon impossible de se connecter et elephant considère que ça ne marche pas.
Mais si vous utilisez cette base pour elephant, ce dernier s'attend à trouver les tables dont il a besoin pour fonctionner.
Or, cette base on l'a créée après l'installation de postgresql, et elle est vide, elle ne contient aucune table.
La solution est simple: pour le test, indiquez le nom d'une base qui existe,
mais pour valider l'installation, il faut ensuite donner le nom d'une base de données qui n'existe pas;
elephant va alors créer cette base et toutes les tables dont il a besoin.
Pour que cela fonctionne, il faut que l'utilisateur "elephant" sur le serveur ait la permission de créer des tables.
Je vous renvoie pour cela au tuto sur http://doc.ubuntu-fr.org/postgresql

Voilà voilà! :P maintenant, normalement elephant fonctionne avec une base externe. Le client elephant ne semble pas utiliser bcp de ressources (je le fais tourner tranquille sur un netbook), c'est surtout le serveur postgresql qui est gourmand;
vous pouvez ainsi économiser la batterie de votre portable, et multitabler un max
sans ralentir votre machine inutilement (plus vous avez de tables, plus il y a de requêtes dans la base de données, plus le pc galère).
Vous pourrez aussi jouer à partir de n'importe quel pc de la maison, en centralisant toutes les stats dans une seule base.
Si vous êtes plusieurs à jouer, vous pouvez créer chacun un utilisateur et une base perso sur postgresql avec un seul serveur postgresql.
L'inconvénient, c'est que le pc avec postgresql doit être allumé (forcément...) et accessible.
Pour jouer chez des amis, deux solutions:
1 - Laisser le serveur allumé chez vous, et le rendre accessible depuis internet (c'est encore toute une histoire, mais c'est faisable)
2 - Faire une copie de la base de données sur votre portable, mais vous perdez alors les gains de ressources.

Une dernière solution consiste à louer un serveur dédié, et installer le serveur pgsql dessus. Si vous êtes un shark en high stakes, c'est indolore (200€ par an).
Si vous êtes un petit joueur, ça reste encore faisable, il faut se réunir à plusieurs pour amortir le coût.

Si vous n'utilisez pas ubuntu mais un autre linux, la configuration reste à peu près la même,
c'est simplement l'emplacement des fichiers de config de pgsql qui peut être différent.
Si vous voulez installer pgsql sur windows, dém***ez vous lol! j'aime pas windows _evil:

Cette procédure doit aussi fonctionner avec hold'em manager (je crois qu'il utilise pgsql aussi)

GL


1 réponse
Modérateur
Steinpilz0104
Inscrit : 10.03.2010
Oldschool Grinder

Salut V1nz

Merci de ton explication très détaillée d'une installation de postgres externe pour elephant. C'est une information très importante pour moi en tant que modérateur de la partie technique pour guider une demande future quelconque d'un autre affilié.

Et en effet, Holdem Manager et Pokertracker utilisent également postgreSQL et pourraient tenir une BD sur un serveur.

Merci encore ! _biggrin: