martedì 17 settembre 2013

Installazione HEM: problemi PostgreSQL

Chi gioca a poker online conosce Holdem Manager. Per chi ha problemi durante l'installazione pubblico questa guida riguardante gli errori del database PostgreSQL in fase d'installazione.
Il post è stato aggiornato dall'ultima versione pubblicata.



Questa guida nasce per aiutarvi nell'installazione del database di HEM oppure per capire cosa succede quando HEM improvvisamente perde la connessione con il DB e nulla sembra farla funzionare.

Vediamo i vari casi e le possibili cause/soluzioni.



Quando installate HEM la prima volta dovrebbe andare sempre tutto bene in quanto il pacchetto di HEM contiene il programma di 
PostgreSQL.  Ma a volte al termine dell'installazione rimane solo HEM e non il DB oppure quest'ultimo decide di non funzionare correttamente.

Cause:
Alcuni Antivirus e/o firewall che bloccano alcune parti dell'installazione, pc con problemi dovuti a virus, trojan e worm presenti, utente che installa che non è amministratore. Qualche volta il problema risiede in alcuni software preesistenti che "bloccano" alcune funzioni del DB.

Soluzioni:
Quando installate HEM vi conviene:

a) disattivate l'antivirus e il firewall, tanto la connessione a internet durante l'installazione non serve a nulla
b) controllate il file hosts (si trova in c:\windows\system32\drivers\etc e si apre con il blocco note): ecco come appare


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost


(1) Nota: se non riuscite a modificare il file Hosts controllate che l'antivirus non lo blocchi oppure che a bloccarlo non sia un programma come Spybot.

c) in fondo togliete il cancelletto alla scritta 127.0.0.1 ed eventualmente aggiungetegli

127.0.0.1 %nome del pc%

dove %nome del pc% lo sostituite con il nome che avete scelto per il vostro pc appunto.

In pratica dovreste trovarvi il file così:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
127.0.0.1       miopc


d) se per caso quando salvate il file il sistema vi dicesse che non può farlo perché il file hosts è in sola lettura dovete salvarlo con un altro nome, cancellare il vecchio file e rinominare il nuovo. Ricordatevi che il file hosts "finito" non deve avere estensione.

e) se il file hosts per qualche motivo non dovesse essere presente, lo dovete creare: aprite il blocco note, scrivete la stringa 127.0.0.1 localhost e salvatelo nella posizione sopra indicata, poi rinominate il file in modo da togliere l'estensione.



A questo punto se l'installazione di HEM e PostgreSQL è andata bene vi troverete HEM funzionante altrimenti qui cominciano i guai seri ma prima ancora un test:


rilanciate HEM e quando vi dice che non riesce a connettersi al DB vi apparirà una maschera e controllate se i dati all'interno corrispondono a questi:

Server Name: 127.0.0.1
Port Number: 5432
Login Name: postgres
Password: postgrespass


Se non lo sono provate a correggerle. Se ancora poi non funzionasse controllate che Antivirus e/o firewall non impediscano l'uso della porta 5432.

Se tutto questo non funziona allora bisogna ricorrere alle maniere forti:

a) se non l'avete scaricate e installate CCLEANER
b) lanciate CCLEANER e fate così:

1) pulizia: fate analizza e poi avvia 
2) registro: fate trova problemi e poi ripara selezionati (salvate il file di modifiche come suggerito da CCLEANER)
3) strumenti:
3a) disinstallazione: togliete HEM e poi postgresql
3b) avvio: controllate che non ci siano servizi tipo POEngine e/o POService. Se ci fossero disabilitateli

a questo punto ripetete la fase 1 e 2. Riavviate il pc e procediamo a pulire il resto:

1) dalla directory Programmi cancellate le cartelle di PostgreSQL e HEM (nella versione 1 la cartella di HM si chiama RVG Software)
2) dal menù Start > esegui oppure da Start > cerca scrivete "regedit" (senza virgolette), selezionate HKEY_CORRENT_USER, dal menù Modifica andate su Trova e scrivete postgres e lanciate la ricerca.
Per tutte le chiavi che vi trova nel pannello di destra cancellate i valori. Quando la chiave è trovata nel pannello di sinistra cancellate l'intera chiave (che ha sempre il nome postgres nel nome).

Riaprite CCLEANER e ripetete i punti 1 e 2.

A questo punto andate sul sito di postgresql e andate su Download, Windows, ancora Download e scegliete la versione adatta secondo questa mia tabella:

XP/Vista/Seven con HM1: scaricate la versione 8.4.10-1 
XP/Vista/Seven con HM2: scaricate la versione 9.1.2-1 - qui c'è la versione 32 o 64 bit a seconda del vostro SO

Dopo il download staccate la connessione a internet, disattivate l'antivirus e il firewall. Aprite il prompt dei comandi scrivete questo comando seguito dal tasto "invio":

net user postgres /delete

poi andate in c:\user se avete Vista/Seven o in c:\documents and setting se avete XP e cancellate la directory postgres (nel caso non ci fosse meglio così).
Controllate anche che nella cartella utenti non ci sia l'utente Postgres. Se ci fosse andate nel pannello di controllo, gestione utenti, gestione altri utenti. Quando trovate l'utente Postgres lo selezionate e lo eliminate. Tutto, compresi i file!

Finalmente possiamo installare questo benedetto database. 
Alla fine del processo il programma vi chiederà se volete installare la builder: ditegli di no. 
Adesso fate il restart del computer e al riavvio possiamo far partire l'installazione di HEM: ovviamente il software trova già il db installato e quindi la procedura sarà piuttosto veloce. All'avvio vi verrà segnalato un errore "manca il database holdemanager": nessuna paura! Nella maschera che vi apparirà subito dopo trovate un pulsante "create database". Fate click, dategli il nome holdemanager, non toccate nient'altro salvo il pulsante Save.

A questo punto HEM starterà correttamente e finalmente potrete cominciare a giocare con le handhistory.

Tutto quanto sopra vi potrà servire anche nel caso in cui malauguratamente smettesse di funzionare HEM perché non si connette più al db. In pratica controllate e l'aggiornamento dell'AV o del Firewall vi abbiano bloccato la porta 5432 o vi abbia modificato il file hosts o se voi avete modificato il nome del pc e così via. In ogni caso attraverso HEM ricordatevi di fare dei backup regolari per non perdere tutte le impostazioni del vostro HUD o degli altri parametri. 
Tutte le vostre mani vengono salvate di default da HEM nella cartella HMArchive sul disco C (ma potete modificare la posizione quando impostate il software): questa cartella potete salvarla con costanza in modo da sopperire a qualche tragedia del vostro PostgreSQL nel caso backup e restore decidessero mai di non funzionare.

Se malgrado tutto non riusciste a installare il software il buon Nero è a vostra disposizione previo appuntamento per sistemare il tutto. Avrete bisogno per questo di TeamViewer.

Ah! dimenticavo: a quel punto vi passerò i dati per il bonifico!