14/3/2017

PostgreSQL installeren, configureren

Filed under: — cybrarian @ 11:48 pm

zie ook ons PostgreSQL artikel

Ik volg een (openSUSE) installatie met dit Engelstalig artikel, en vat het ook even samen…
https://www.howtoforge.com/tutorial/how-to-install-postgresql-and-phppgadmin-on-opensuse-leap-42.1/#step-install-postgresql

Opm: Ik installeerde via Yast ipv met zypper; zoek “postgres” en je krijgt heel wat opties; installeer de server, de client, de management tool pgadmin3, de webtool phpPgAdmin, de odbc- en libreoffice-drivers, … De server heeft het versienummer in de naam (postgresql94), de client niet (postgresql).

  • Leap 42.2 – postgresql94 – postgres – pgadmin .. – phpPgAdmin ..
  • openSUSE 13.1 – postgres92 (9.2) – postgres (psql 9.2) – pgadmin3 1.16 – phpPgAdmin 5.0.4

Starten doe je zo:

systemctl start postgresql
vroeger: /etc/init.d/postgresql start

… en checken of hij draait in details als (* volledig log zie onderaan):

linuxbox:/home/cybr # systemctl status postgresql

postgresql.service - PostgreSQL database server
Active: active (running) since Tue 2017-03-14 22:01:20 CET; 9s ago

linuxbox:/home/cybr # journalctl -u postgresql

Mar 14 22:01:19 linuxbox postgresql-init[4956]: 2017-03-14 22:01:19 CET HINT: Future log output will appear in directory "pg_log".
Mar 14 22:01:20 linuxbox systemd[1]: Started PostgreSQL database server.

Met veel details en uitleg:

ps aux|grep postgres

wat de hiërarchie toont van de processen (=> pid hoofdproces):

ps -AH|grep postgres

Bij installatie is er een user postgres gemaakt op de server;
compgen -u
je moet werken als die gebruiker om verder te configureren (als root wordt niet toegelaten in de standaard configuratie):

linuxbox:/home/cybr # su - postgres

postgres@linuxbox:~>

Start de commandolijn “client” psql:

postgres@linuxbox:~> psql

psql (9.4.9)
Type "help" for help.
 
postgres=#

Zet eerst een wachtwoord:

postgres=# \password postgres

Enter new password:
Enter it again:
postgres=#

Je geraakt uit de postgres commandolijn met \q

Maak, nog steeds als postgres user op je Linux systeem een nieuwe gebruiker en rol aan, en geef hem ineens superkrachten (en een database):

createuser -s nano
createdb nano_db

Geen reaktie = geen foutmeldingen.
Dan terug inloggen in psql en:

postgres=# alter user nano with encrypted password 'nano2test';

ALTER ROLE

postgres=# grant all privileges on database nano_db to nano;

GRANT


Op een andere terminal pas je de instellingen aan om op een publiek ip adres te luisteren, zodat je vanop een andere computer toegang krijgt, of een applicatie toegang kan geven.

mcedit /var/lib/pgsql/data/postgresql.conf

en wijzig de gepaste lijnen naar:

listen_addresses = 'localhost'
port = 5432

En dan de wachtwoordcontrole naar md5:

mcedit /var/lib/pgsql/data/pg_hba.conf

(de oude standaard waarde staat er nog boven)

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
# local all all peer
local all all md5
# IPv4 local connections:
# host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
# IPv6 local connections:
# host all all ::1/128 ident
host all all ::1/128 md5

en herstart de server:

systemctl restart postgresql

Om phpPgAdmin toegang te geven:

mcedit /etc/phpPgAdmin/config.inc.php

en vul de localhost in:

$conf['servers'][0]['host'] = '';

naar

$conf['servers'][0]['host'] = 'localhost';

Bovendien heeft Apache wat extra activatie nodig; check of php5 en version geladen zijn:

a2enmod -l

Indien niet:

a2enmod php5
a2enmod version

Herstart apache en postgresql.

In phpPgAdmin (http://localhost/phpPgAdmin/)
kreeg ik voordien te zien:

Attempt to connect with invalid server parameter, possibly someone is trying to hack your system.

Maar nu krijg ik netjes een welkom, een taalkeuze en als ik op Servers klik:

Server Host Port Username Actions
PostgreSQL localhost 5432

Ik kan nu (op PostgreSQL klikken en) inloggen met de voorheen gemaakte nano account. Ik zie de nano_db database en postgres (default administrative connection database).
Inloggen met de administratieve account postgres gaat niet! (maar dat is dus de bedoeling).

En de server terug stoppen:

systemctl stop postgresql
(daarna werkt natuurlijk phpPgAdmin niet meer, en blijft hangen op : “Login to PostgreSQL”)

Klaar!

(en nu misschien eens proberen te gebruiken vanuit Gambas?)

– – –
* vervolg starten/checken server:

Na het starten checken of de server draait:
(terug naar boven)

linuxbox:/home/cybr # systemctl status postgresql

● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
linuxbox:/home/cybr # systemctl start postgresql
linuxbox:/home/cybr # systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2017-03-14 22:01:20 CET; 9s ago
  Process: 4956 ExecStart=/usr/lib/postgresql-init start (code=exited, status=0/SUCCESS)
 Main PID: 5007 (postgres)
    Tasks: 7 (limit: 512)
   CGroup: /system.slice/postgresql.service
           ├─5007 /usr/lib/postgresql94/bin/postgres -D /var/lib/pgsql/data
           ├─5008 postgres: logger process   
           ├─5010 postgres: checkpointer process   
           ├─5011 postgres: writer process   
           ├─5012 postgres: wal writer process   
           ├─5013 postgres: autovacuum launcher process   
           └─5014 postgres: stats collector process   
.
Mar 14 22:00:54 linuxbox systemd[1]: Starting PostgreSQL database server...
Mar 14 22:00:55 linuxbox postgresql-init[4956]: Initializing PostgreSQL 9.4.9 at location /var/lib/pgsql/data
Mar 14 22:01:19 linuxbox postgresql-init[4956]: 2017-03-14 22:01:19 CET   LOG:  redirecting log output to logging collector process
Mar 14 22:01:19 linuxbox postgresql-init[4956]: 2017-03-14 22:01:19 CET   HINT:  Future log output will appear in directory "pg_log".
Mar 14 22:01:20 linuxbox systemd[1]: Started PostgreSQL database server.

linuxbox:/home/cybr # journalctl -u postgresql

-- Logs begin at Wed 2017-02-15 00:34:10 CET, end at Tue 2017-03-14 22:01:20 CET. --                                                              
Mar 14 22:00:54 linuxbox systemd[1]: Starting PostgreSQL database server...                                                                         
Mar 14 22:00:55 linuxbox postgresql-init[4956]: Initializing PostgreSQL 9.4.9 at location /var/lib/pgsql/data                                       
Mar 14 22:01:19 linuxbox postgresql-init[4956]: 2017-03-14 22:01:19 CET   LOG:  redirecting log output to logging collector process                 
Mar 14 22:01:19 linuxbox postgresql-init[4956]: 2017-03-14 22:01:19 CET   HINT:  Future log output will appear in directory "pg_log".               
Mar 14 22:01:20 linuxbox systemd[1]: Started PostgreSQL database server.

linuxbox:/home/cybr # ps aHux|grep postgres

postgres  2865  0.0  0.0  36168  2236 ?        Ss   10:28   0:00 /usr/lib/systemd/systemd --user
postgres  2866  0.0  0.0  67940  2368 ?        S    10:28   0:00 (sd-pam)           
postgres  2904  0.0  0.2 105184  8764 ?        S    10:28   0:00 /usr/lib/postgresql92/bin/postgres -D /var/lib/pgsql/data
postgres  2905  0.0  0.0  64932  1324 ?        Ss   10:28   0:00 postgres: logger process                                 
postgres  2907  0.0  0.0 105184  1532 ?        Ss   10:28   0:00 postgres: checkpointer process                           
postgres  2908  0.0  0.0 105184  1540 ?        Ss   10:28   0:00 postgres: writer process                                 
postgres  2909  0.0  0.0 105184  1304 ?        Ss   10:28   0:00 postgres: wal writer process                             
postgres  2910  0.0  0.0 106036  2744 ?        Ss   10:28   0:00 postgres: autovacuum launcher process                    
postgres  2911  0.0  0.0  64928  1508 ?        Ss   10:28   0:00 postgres: stats collector process                        
root      3075  0.0  0.0   9288   920 pts/3    S+   10:39   0:00 grep --color=auto postgres

linuxbox:/home/cybr # ps -AH|grep postgres

2904 ?        00:00:00   postgres
 2905 ?        00:00:00     postgres
 2907 ?        00:00:00     postgres
 2908 ?        00:00:00     postgres
 2909 ?        00:00:00     postgres
 2910 ?        00:00:00     postgres
 2911 ?        00:00:00     postgres

(terug naar boven)

Reacties zijn gesloten.

Powered by WordPress