<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Instal%C2%B7laci%C3%B3_i_configuraci%C3%B3_del_Postgres</id>
	<title>Instal·lació i configuració del Postgres - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Instal%C2%B7laci%C3%B3_i_configuraci%C3%B3_del_Postgres"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Instal%C2%B7laci%C3%B3_i_configuraci%C3%B3_del_Postgres&amp;action=history"/>
	<updated>2026-08-30T11:14:50Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Instal%C2%B7laci%C3%B3_i_configuraci%C3%B3_del_Postgres&amp;diff=257376&amp;oldid=prev</id>
		<title>Joan: Es crea la pàgina amb «Amb el Linkat el Postgres ja està instal.lat i s'engega en l'inici del sistema  Per tal de poder-nos connectar hem de modificar el fitxer /var/lib/pgsql/data/pg_hba.conf...».</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Instal%C2%B7laci%C3%B3_i_configuraci%C3%B3_del_Postgres&amp;diff=257376&amp;oldid=prev"/>
		<updated>2018-05-30T18:46:17Z</updated>

		<summary type="html">&lt;p&gt;Es crea la pàgina amb «Amb el Linkat el Postgres ja està instal.lat i s&amp;#039;engega en l&amp;#039;inici del sistema  Per tal de poder-nos connectar hem de modificar el fitxer /var/lib/pgsql/data/pg_hba.conf...».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Amb el Linkat el Postgres ja està instal.lat i s'engega en l'inici del sistema&lt;br /&gt;
&lt;br /&gt;
Per tal de poder-nos connectar hem de modificar el fitxer /var/lib/pgsql/data/pg_hba.conf. Anem al final, a on diu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # &amp;quot;local&amp;quot; is for Unix domain socket connections only&lt;br /&gt;
    local all all ident sameuser&lt;br /&gt;
    # IPv4 local connections:&lt;br /&gt;
    host all all 127.0.0.1/32 ident sameuser&lt;br /&gt;
    # IPv6 local connections:&lt;br /&gt;
    host all all ::1/128 ident sameuser&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
canviem el ''ident sameuser'' per un ''trust'', i guardem.&lt;br /&gt;
(ja estava canviat per defecte)&lt;br /&gt;
&lt;br /&gt;
tant el Postgres com el tomcat no cal arrencar-los, s'arrenquen automàticament amb l'inici del sistema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
D'entrada no puc arrencar i em dóna el següent missatge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ postgres&lt;br /&gt;
You must specify the --config-file or -D invocation option or set the PGDATA environment variable.&lt;br /&gt;
postgres --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
però això és una confusió perquè la comanda per entrar a la consola SQL no és postgres sinó que és '''psql'''&lt;br /&gt;
&lt;br /&gt;
la instal.lació del postgres està a /usr/bin/postgres (aquest és el executable) i la instal.lació està a&lt;br /&gt;
&lt;br /&gt;
/var/lib/pgsql&lt;br /&gt;
&lt;br /&gt;
PGDATA és una variable d'entorn que diu on estan les dades de postgres&lt;br /&gt;
&lt;br /&gt;
echo $PGDATA -&amp;gt; no hi ha res&lt;br /&gt;
&lt;br /&gt;
s'ha d'iniciar aquesta variable d'entorn&lt;br /&gt;
&lt;br /&gt;
recordem que després de la instal.lació, l'usuari postgres existeix per defecte&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$su postgres&lt;br /&gt;
$postgres -D /var/lib/pgsql/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el problema està en què en aquesta carpeta no hi ha res, ni postgresql.conf ni pg_hba.conf&lt;br /&gt;
i que el servidor de postgres està aturat.&lt;br /&gt;
el primer que faig és iniciar-lo.&lt;br /&gt;
com a root, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$cd /etc/init.d&lt;br /&gt;
$./postgresql start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i es reinicia sense problemes&lt;br /&gt;
&lt;br /&gt;
i automàticament es creen els fitxers que faltaven (s'ha executat un script inicial...)&lt;br /&gt;
&lt;br /&gt;
configuro manualment el fitxer postgresql.conf, fico els directoris on està /data, i reinicio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/postgresql restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per establir una variable d'entorn:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PGDATA=/var/lib/pgsql/data&lt;br /&gt;
echo $PGDATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No funciona:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2008-09-16 17:53:51 CEST   FATAL:  lock file &amp;quot;postmaster.pid&amp;quot; already exists&lt;br /&gt;
2008-09-16 17:53:51 CEST   HINT:  Is another postmaster (PID 9018) running in data directory &amp;quot;/var/lib/pgsql/data&amp;quot;?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
reinicio a veure què passa...&lt;br /&gt;
&lt;br /&gt;
funciona, però després ja no.&lt;br /&gt;
&lt;br /&gt;
Sembla ser que es queden processos oberts...&lt;br /&gt;
&lt;br /&gt;
ps -A -&amp;gt; per veure tots els processos&lt;br /&gt;
&lt;br /&gt;
$kill 5970 per matar el procés&lt;br /&gt;
&lt;br /&gt;
i ara ja funciona, però el que tinc instal.lat és el backend, que és un postgres stand-alone back-end&lt;br /&gt;
i no sé què fer...&lt;br /&gt;
&lt;br /&gt;
el problema està amb el script initdb, que suposo que l'ha d'executar l'usuari postgres, i abans el devia executar amb l'usuari root.&lt;br /&gt;
Elimino el directori data i torno a executar initdb amb l'usuari postgres&lt;br /&gt;
&lt;br /&gt;
efectivament, torno a crear tota l'estructura...&lt;br /&gt;
&lt;br /&gt;
Success. You can now start the database server using:&lt;br /&gt;
&lt;br /&gt;
    postmaster -D /var/lib/pgsql/data&lt;br /&gt;
or&lt;br /&gt;
    pg_ctl -D /var/lib/pgsql/data -l logfile start&lt;br /&gt;
&lt;br /&gt;
el mateix...&lt;br /&gt;
&lt;br /&gt;
'''Solució!'''&lt;br /&gt;
&lt;br /&gt;
Sí que funcionava, el que passa és que per entrar en el Postgres en mode comanda havia de fer&lt;br /&gt;
$psql i no $postgres&lt;br /&gt;
&lt;br /&gt;
de totes maneres, he seguit aquest tutorial i ha funcionat.&lt;br /&gt;
&lt;br /&gt;
no me n'en surto, segueixo el tutorial de &lt;br /&gt;
http://www.dbrunas.com.ar/article.php/2007091509464125&lt;br /&gt;
&lt;br /&gt;
acaba la instal.lació correctament. L'usuari postgres no té pwd. Fico com a password postgres (ho faig des del pgAdmin, a posteriori&lt;br /&gt;
      &lt;br /&gt;
&lt;br /&gt;
==Configuració del Postgres en mode servidor==&lt;br /&gt;
&lt;br /&gt;
(volem que es pugui atacar des de la xarxa)&lt;br /&gt;
&lt;br /&gt;
els fitxers postgresql.conf i pg_hba.conf estan a /var/lib/pgsql/data&lt;br /&gt;
&lt;br /&gt;
postgresql.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen_addresses='*'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pg_hba.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#host    all         all         192.168.0.9/32          md5 -&amp;gt; només deixa accedir des de la màquina 192.168.0.9 (màscara de 32 bits, 255.255.255.255)&lt;br /&gt;
host    all         all         192.168.0.179 255.255.255.0          md5 -&amp;gt; deixa accedir des de totes les màquines 192.168.0.*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o bé&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host    all         all         192.168.0.179/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/postgresql restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ara podem accedir al Openbravo des de qualsevol màquina de la xarxa local: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
psql -h 192.168.0.15 -p 5432 postgres -U tad     &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
pwd tad: tad -&amp;gt;el password es pot canviar des del pgadmin (s'ha de reiniciar)&lt;br /&gt;
&lt;br /&gt;
==Aclariment abril 2010==&lt;br /&gt;
En la màquina 192.168.0.15 es va haver d'eliminar el Postgres que venia per defecte (versió 8.2) i instal.lar la versió 8.3, necessària per instal.lar el Openbravo. Ara ja anem perla versió 8.4 (abril 2010).&lt;br /&gt;
&lt;br /&gt;
Per veure que el Postgres està funcionant, pots comprovar-ho fent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ /etc/init.d/postgresql-8.3 start&lt;br /&gt;
o&lt;br /&gt;
$ /etc/init.d/postgresql-8.3 restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Efectivament, el servei està funcionant. Ara bé, per què no funciona &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ psql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Doncs perquè no sap on està. S'ha de posar la ruta en el path. I on està? Si s'edita el fitxer /etc/init.d/postgresql-8.3 es veu clarament on està:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/opt/PostgreSQL/8.3/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per tant,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /opt/PostgreSQL/8.3/bin&lt;br /&gt;
$ ./psql -h 192.168.0.15 -U postgres postgres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I el PostgreSQL ha de funcionar.&lt;br /&gt;
&lt;br /&gt;
==Aclariment II. Configuració de PostgreSQL amb una instal.lació neta de LINKAT==&lt;br /&gt;
Instal.lem PostgreSQL amb el gestor de programari (Yast). Instal.lem el paquet postgresql-server, la versió 8.3.7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/postgresql start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@LINKAT-BBDD:$ psql&lt;br /&gt;
psql: FATAL:  Ident authentication failed for user &amp;quot;joan&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
en instal.lar el LINKAT es crea un usuari del SO que s'anomena ''postgres'', i amb aquest usuari sí que podem entrar al postgres:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan$ sudo su postgres&lt;br /&gt;
postgres$ psql&lt;br /&gt;
postgres=&amp;gt; ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';&lt;br /&gt;
postgres# \q&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
encara no ens podem connectar pel mètode tradicional:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ psql -h localhost -p 5432 postgres -U postgres&lt;br /&gt;
psql: FATAL:  Ident authentication failed for user &amp;quot;postgres&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fent &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo passwd postgres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
tampoc s'arregla la situació.&lt;br /&gt;
&lt;br /&gt;
Els fitxers de configuració postgresql.conf i pg_hba.conf estan a /var/lib/pgsql/data&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen_addresses = 'localhost'  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ident sameuser significa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
You're telling postgres to only accept users that&lt;br /&gt;
exist in Linux, and that they need the Linux password.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i la manera de què funcioni és posar en el fitxer pg_hba.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host all all 127.0.0.1 255.255.255.0 trust (no demana password)&lt;br /&gt;
o bé&lt;br /&gt;
host all all 127.0.0.1 255.255.255.0 password (sí demana password)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem de reiniciar el postgres per tal que els canvis sorgeixin efecte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/postgresql restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ psql -h localhost -p 5432 -U postgres postgres&lt;br /&gt;
postgres#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(també funciona amb l'usuari joan o root)&lt;br /&gt;
&lt;br /&gt;
Ara anem a crear un usuari de la base de dades nou, i aquest usuari crearà una base de dades pròpia.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ psql -h localhost -p 5432 -U postgres postgres&lt;br /&gt;
postgres=&amp;gt; CREATE USER pere WITH ENCRYPTED PASSWORD 'pere';&lt;br /&gt;
ROLE CREATED&lt;br /&gt;
&lt;br /&gt;
postgres =&amp;gt; CREATE DATABASE peredb OWNER=pere;&lt;br /&gt;
postgres =&amp;gt; grant all privileges on database peredb to pere; (segurament no cal, doncs pere és el propietari)&lt;br /&gt;
postgres =&amp;gt; \q&lt;br /&gt;
&lt;br /&gt;
$ psql -h localhost -p 5432 -U pere peredb&lt;br /&gt;
peredb =&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, juny 2008&lt;br /&gt;
[[Categoria: PostgreSQL]]&lt;br /&gt;
[[Categoria: Linux]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>