[Gfoss] help errore avvio server

Se hai usato la procedura di setup fornita da postgres per windows,
alla fine della installazione il server DEVE avviarsi.

se questo non succede, non devi andare a smanettare sul file di configurazione perche' poi ti perdi.
E' corretto metterci mano, ma solo successivamente, per applicare delle migliorie.

I caratteri \ e / sono equivalenti e va tutto bene come setta di default postgres.
A me con la procedura di default si installa e si avvia senza problemi.

Se non ti si avvia il server le ragioni sono da qualche altra parte.

Per prima cosa verifica se nella lista dei servizi di windows e' presente un servizio che si chiama:

"postgresql 8.4" o qualcosa di simile.

se non ce allora vuol dire che durante la fase di installazione la procedura di setup non ha ricevuto la totalita' delle informazioni che richiedeva.
Oppure non ha trovato le condizioni al contorno che chiedeva.

Andrea.

ho dinuovo cancellato tutto e reinstallato tutto da zero con la speranza

Quando dici "cancellato" intendi disinstallato ? o semplicemente cancellato i files ?

Comunque,

Durante l'installazione ,
il setup ti chiede di indicargli l'utente con cui registrera' il servizio postgres e ne curera' l'avvio.
che utente gli hai indicato ? Se non gli hai indicato ne' l'utente , ne' la sua password lui tende a crearne uno, ma se questa e' la seconda
installazione probabilmente ne esisteva gia' uno, e se la sua password era diversa, la seconda volta non te lo crea, e pero' sbaglia la password e di conseguenza non si riesce ad avviare il servizio.

nel tuo caso l'untete dovrebbe essere "postgres".
>- postgresql-8.4 con percorso:C:/program files

(x86)/postgresql/8.4/bin/pg_ctl.exe runservice -n "postgresql-8.4" -d
"C:/program files (x86)/postgresql/8.4/data" -w (con nome di avvio=
.\postgres)

Il "nome di avvio" (./postgres) e' il nome dell'account windows.
Devi sincerarti che abbia i diritti per poter avviare il servizio postgres, al limite dagli i diritti di amministrazione della tua macchina windows.

per cui verifica che diritti di sistema ha tale account.
Poi, un'altra possibile fonte di problemi potrebbe essere la password.
Puo' darsi, infatti, che la pwd di sistema di tale account sia differente da quella che e' registrata nella proprieta' di avvio del servizio.

Se non sei piu' che sicura della password che viene impiegata,
entra come amministratore, forza il cambio della password di tale utente "postgres" e poi inserisci la nuova password anche nel servizio
(tasto destro, proprieta' e linguetta "account")

dopodiche ' prova ad avviare a mano il servizio con il pulsante di avvio.

se non ti si avvia, dai una occhiata negli eventi di windows che messaggio di errore ha generato.

claudia.santese@cooperativaimpronte.it ha scritto:

On Sun, 29 Aug 2010 18:53:06 +0200, Andrea Peri 2007 <aperi2007@gmail.com>
wrote:

Per prima cosa verifica se nella lista dei servizi di windows e' presente un servizio che si chiama:

"postgresql 8.4" o qualcosa di simile.

Salve Andrea, ho dinuovo cancellato tutto e reinstallato tutto da zero con la speranza
di risolvere, ma niente.
Nei servizi di windows ne esistono due:
-PostgreSQL con percorso C:\program files
(x86)\postgresql\8.4\bin/pg_ctl.exe runservice -n "postgresql" -d
"C:/program files (x86)/postgresql/8.4/data" (nome di avvio= local system)

- postgresql-8.4 con percorso:C:/program files
(x86)/postgresql/8.4/bin/pg_ctl.exe runservice -n "postgresql-8.4" -d
"C:/program files (x86)/postgresql/8.4/data" -w (con nome di avvio=
.\postgres)

entrambi sono arrestati.

premessa:lavoro sempre da prompt, aperto facendo "esegui amministratore"

Ho provato a vedere lo status del server con "pg_ctl status" nella
directori %/bin ed il risultato é stato:
1- non è configurata PGDATA--> risolvo mettendo l'opzione "-D C:\program
files (x86)\postgresql\8.4\data" e la risposta di pg_ctl status diviene "il
server si sta avviando" (ma non si avvia in realtà)
2- provo con pg_ctl start e mi da accesso negato sulla creazione di
postmaster.ops--> risolvo dando il permesso all'utente Claudia di
modificare il file postmaster.ops 3 - riprovo con pg_ctl start e stavolta mi da accesso negato di scrittura
sul file "global/config_exec_params.new"

Mi sono fermata per non peggiorare la situazione :frowning:
Consigli?
Grazie in anticipo..
Claudia

Non posso saperlo con certezza, ma sospetto che la ragione sia che
essi ora puntano al servizio sbagliato.

te hai due servizi uno che si chiama Postgres e l’altro che si chiama Postgres-8.4.

Uno dei due si avvia, l’altro probabilmente no.
Secondo me le shell che citi invocano lo start e lo stop del servizio errato.

La controprova e’ semplice, le editi e modifichi i parametri chiamando il servizio corretto.
Basta cambiare il nome del servizio invocato, stando bene attenti a a spazi e Maiuscole.

In ogni caso:
a questo punto che postgres funziona, puoi cominciare a modificare le configurazioni.
Per collegarti da remoto, ovvero non solo localhost devi mettere il solito ‘*’ al posto di
‘localhost’ nel file pg_hba.conf e settare per bene gli indirizzi IP che vuoi invocare.

Mi pare di ricordare che nell’esempio che avevi inviato mancava il gateway. Infatti non basta l’indirizzo IP, ma serve anche il gateway o l’intervallo di indirizzi ammessi.

Saluti,

Il giorno 30 agosto 2010 13:09, <claudia.santese@cooperativaimpronte.it> ha scritto:

On Mon, 30 Aug 2010 00:32:28 +0200, Andrea Peri 2007 <aperi2007@gmail.com>
wrote:
DOMANDA:
PERCHè INVECE I COMANDI DAL MENU START-POSTGRESQL8.4 START/STOP/RESTART
SERVER non avviano il server?
e nemmeno i due servizi su Information System risultano avviati?

Claudia

Andrea Peri
. . . . . . . . .
qwerty àèìòù

On Tue, 31 Aug 2010 07:55:58 +0200, Andrea Peri <aperi2007@gmail.com>
wrote:

Uno dei due si avvia, l'altro probabilmente no.

E' così, ho verificato.

Secondo me le shell che citi invocano lo start e lo stop del servizio
errato.
La controprova e' semplice, le editi e modifichi i parametri chiamando

il

servizio corretto.
Basta cambiare il nome del servizio invocato, stando bene attenti a a

spazi

e Maiuscole.

Ciao Andrea, ci ho messo un pò per risponderti perchè ho fatto diversi
tentativi.
Sicuramente il problema è legato proprio a questo, i due servizi.
Uno dell'account di sistema postgres e l'altro dell'account da cui lavoro
che però non è legato direttamente
alle icone "start/reload/restart server che automaticamente si posizionano
con l'installazione nel menù start.

Per ora riesco ad avviare il server solo da prompt o dal menù Servizi
(tramite ctrl-alt-canc).

Per collegarti da remoto, ovvero non solo localhost devi mettere il

solito

'*' al posto di
'localhost' nel file pg_hba.conf e settare per bene gli indirizzi IP che
vuoi invocare.

Non vorrei dire una cosa errata, ma l'* non va messo nella riga
"listen_addresses" del file
postgresql.conf? ti allego la mia configurazione dei tre file.
Se fossi così gentile da darci un occhio te ne sarei grata.

postgresql.conf=
# - Connection Settings -
listen_addresses = '*'
port = 5432
max_connections = 100
log_destination = 'stderr'
logging_collector = on

pg_hba=
# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
# host all all 127.0.0.1/32 md5

host all all 192.168.x.xxx/32 password
# IPv6 local connections:
# host all all ::1/128 md5

pgpass=
nome host 192.168.x.xxx
porta 5432
database all
noem utente all
password:xxxxx

Grazie infinite.

Claudia

claudia.santese@cooperativaimpronte.it ha scritto:

solito
  

'*' al posto di
'localhost' nel file pg_hba.conf e settare per bene gli indirizzi IP che
vuoi invocare.
    
Non vorrei dire una cosa errata, ma l'* non va messo nella riga
"listen_addresses" del file
postgresql.conf? ti allego la mia configurazione dei tre file.
Se fossi così gentile da darci un occhio te ne sarei grata.

Si , hai ragione ricordavo male.
faccio sempre confusione su dove si trova quel parametro, perche' e' un
parametro che sembra di connessione, ma e' pero' collocato nel file
postgres.conf.

# IPv4 local connections:
# host all all 127.0.0.1/32 md5

questa serve per l'accesso da localhost, va bene.
Impostata cosi' vuol dire che stai comunque chiedendo che l'utente
immetta la password per collegarsi, in MD5 vuol dire su canale criptato,
va bene cosi', e' preferibile sempre inviare passwords criptate.

host all all 192.168.x.xxx/32 password
  
qui te stai usando 'password', che se ricordo bene vuol dire password
inviata in chiaro.
Questo significa che qualcuno con uno sniffer te la legge subito.
Lasciando stare il fatto che siano dati importanti o no, e' il principio
che conta.
Non ha senso usare la password in chiaro per un collegamento da remoto e
usarla criptata per un collegamento da locale. Casomai l'opposto, ma e'
sempre meglio criptarla a prescindere.
Per cui io metterei MD5 anche qui.

inoltre , anziche' indicare l'intervallo ( /32) e' piu' semplice usare
il gateway di riferimento.

ad esempio:

host all all 192.68.x.xxx 255.255.0.0 md5

(cioe' senza il /32 o altro valore che sia)

la stringa sopra indica al dbms che si possono connettere tutti i pc che
hanno un indirizzo ip pari a 192.168.xxx.xxx. dove le ultime 2 triplette
possono assumere qualsiasi valore.

se invece scrivevi:

host all all 192.68.12.xxx 255.255.255.0 md5

allora voleva dire che si possono collegare solamente i PC che hanno un
indirizzo IP del tipo:
192.168.12.xxx, ovvero solo l'ultima tripletta puo' assumere qualsiasi
valore.

# IPv6 local connections:
# host all all ::1/128 md5

Questa e' irrilevante perche' non credo proprio che tu stia usando l' IP6.

Saluti,

Andrea.

Ciao Andrea, ci ho messo un pò per risponderti perchè ho fatto diversi
tentativi.
Sicuramente il problema è legato proprio a questo, i due servizi.
Uno dell’account di sistema postgres e l’altro dell’account da cui lavoro
che però non è legato direttamente
alle icone "start/reload/restart server che automaticamente si posizionano
con l’installazione nel menù start.

Se vuoi provare a rimettere a posto le cose quello che devi fare e’ il seguente:

Se guardi le proprieta’ del comando “start” nel menu, noterai che esso punta a uno script che si trova ; ad esempio in
C:\Program Files (x86)\PostgreSQL\8.4\scripts

e si chiama
serverctl.vbs

aprendolo trovi uno script in VisualBasic, ma alla riga 23 inizia un comando “case” che
e’ il punto nevralgicosu cui viene avviato il servizio.

ad esempio ci trovi scritte delle frasi del tipo:

DoCmd(“net start postgresql-8.4”)

che vuol dire "avvia il servizio che si chiama “postgres-8.4”
oppure

DoCmd(“net stop postgresql-8.4”)
che vuol dire "ferma il servizio che si chiama "postgres-8.4

se nel tuo caso il servizio posgres (di cui si parlava in precedente email) si chiamasse “pippo-postgres”,
basta che cambi in questo script alla parola “postgres-8.4” la parola “pippo-postgres”
e lo script avvierebbe e stopperebbe il servizio indicato.

ma anche senza cambiarlo puoi gia’ verificare se nello stato attuale questo script avvia e ferma il servizio che rappresenta quello correttamente configurato.

Una ultima cosa:
verifica che alla riga 29, dove trovi riportato il percorso completo verso il programma pg_ctl e verso la cartella con i dati, e’ corretto con quello dove essi realmente si trovano nel tuo computer.

Le doppie e triple virgolette non sono un errore da correggere, ma una necessita’ tecnica nei programmi in VBS.

Saluti,

Il giorno 01 settembre 2010 18:43, <claudia.santese@cooperativaimpronte.it> ha scritto:

On Tue, 31 Aug 2010 07:55:58 +0200, Andrea Peri <aperi2007@gmail.com>
wrote:

Uno dei due si avvia, l’altro probabilmente no.

E’ così, ho verificato.

Secondo me le shell che citi invocano lo start e lo stop del servizio
errato.
La controprova e’ semplice, le editi e modifichi i parametri chiamando
il
servizio corretto.
Basta cambiare il nome del servizio invocato, stando bene attenti a a
spazi
e Maiuscole.

Ciao Andrea, ci ho messo un pò per risponderti perchè ho fatto diversi
tentativi.
Sicuramente il problema è legato proprio a questo, i due servizi.
Uno dell’account di sistema postgres e l’altro dell’account da cui lavoro
che però non è legato direttamente
alle icone "start/reload/restart server che automaticamente si posizionano
con l’installazione nel menù start.

Per ora riesco ad avviare il server solo da prompt o dal menù Servizi
(tramite ctrl-alt-canc).

Per collegarti da remoto, ovvero non solo localhost devi mettere il
solito
‘*’ al posto di
‘localhost’ nel file pg_hba.conf e settare per bene gli indirizzi IP che
vuoi invocare.

Non vorrei dire una cosa errata, ma l’* non va messo nella riga
“listen_addresses” del file
postgresql.conf? ti allego la mia configurazione dei tre file.
Se fossi così gentile da darci un occhio te ne sarei grata.

postgresql.conf=

- Connection Settings -

listen_addresses = ‘*’
port = 5432
max_connections = 100
log_destination = ‘stderr’
logging_collector = on

pg_hba=

TYPE DATABASE USER CIDR-ADDRESS METHOD

IPv4 local connections:

host all all 127.0.0.1/32 md5

host all all 192.168.x.xxx/32 password

IPv6 local connections:

host all all ::1/128 md5

pgpass=
nome host 192.168.x.xxx
porta 5432
database all
noem utente all
password:xxxxx

Grazie infinite.

Claudia

Andrea Peri
. . . . . . . . .
qwerty àèìòù

On Wed, 1 Sep 2010 21:53:47 +0200, Andrea Peri <aperi2007@gmail.com>
wrote:

Se vuoi provare a rimettere a posto le cose quello che devi fare e' il
seguente:

Se guardi le proprieta' del comando "start" nel menu, noterai che esso
punta a uno script che si trova ; ad esempio in
C:\Program Files (x86)\PostgreSQL\8.4\scripts

e si chiama
serverctl.vbs

aprendolo trovi uno script in VisualBasic, ma alla riga 23 inizia un
comando
"case" che
e' il punto nevralgicosu cui viene avviato il servizio.

ad esempio ci trovi scritte delle frasi del tipo:

DoCmd("net start postgresql-8.4")

che vuol dire "avvia il servizio che si chiama "postgres-8.4"
oppure

DoCmd("net stop postgresql-8.4")
che vuol dire "ferma il servizio che si chiama "postgres-8.4

se nel tuo caso il servizio posgres (di cui si parlava in precedente

email)

si chiamasse "pippo-postgres",
basta che cambi in questo script alla parola "postgres-8.4" la parola
"pippo-postgres"
e lo script avvierebbe e stopperebbe il servizio indicato.

Fatto, ora funziona correttamente.
Volevo solo avvertire che bisogna far attenzione a leggere il percorso che
il servizio richiama.
In realtà dal menù System Information sulla schermata generale dove ci
sono tutti gli altri servizi, il servizio è legato al percorso "path/
runservice -N "postgresql" -D path/"
(tutto minuscolo);
in realtà solo aprendo le proprietà del servizio ho potuto verificare che
il nome da richiamare era "PostgreSQL" e che è l'unico che richiama i miei
dati.

Una ultima cosa:
verifica che alla riga 29, dove trovi riportato il percorso completo

verso

il programma pg_ctl e verso la cartella con i dati, e' corretto con

quello

dove essi realmente si trovano nel tuo computer.

Anche in questo caso ho ritrovato le solite slash rovesciate.
Lo script usa \, mentre nel menù Servizi del System Information il
servizio
richiama il path con le slash corrette (/).In generale non mi ha dato
problemi nell'avviare il server.

Grazie mille!
Bg

Claudia