PostgreSQL installeren, configureren
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:
(meer…)