Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
- Πώς μπορούμε να συνδέσουμε Oracle Database με SQL Server με χρήση Oracle Gateway σε Linux - 1 Ιούλιος 2024
Σε αυτό το άρθρο θα δούμε ένα άλλο Relational Database Management System (RDBMS) την PostgreSQL. Η PostgreSQL είναι είναι η πιο προχωρημένη open source σχεσιακή βάση δεδομένων. Σαν open-source δεν απαιτεί να αγοραστεί κάποιο licence και είναι δωρεάν.
Η PostgreSQL υποστηρίζει τα χαρακτηριστικά ACID όπως και τα υπόλοιπα RDBMS με τα δεδομένα να είναι συσχετισμένα σε πίνακες αλλά και NoSQL (non-relational) με τα δεδομένα να είναι σε αρχεία με δομή όπως τα JSON.
Στο άρθρο θα δούμε βήμα βήμα πως ολοκληρώνεται η εγκατάσταση της PostgreSQL σε Linux όπως και του web εργαλείου pgAdmin ώστε να την διαχειριζόμαστε.
Η εγκατάσταση της PostgreSQL
Τα βήματα της εγκατάστασης σε Red Hat Linux είναι αρκετά απλά. Θα πρέπει να κατεβάσουμε το repository και να τρέξουμε το install.
Επίσης με την εκτέλεση initdb θα δημιουργηθεί Database Cluster ώστε να μπορούμε να διαχειριζόμαστε μια συλλογή από βάσεις σε ένα server instance.
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql11-server sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
Ενεργοποιούμε το service ώστε να ξεκινάει μόνο του και το κάνουμε εκκίνηση.
sudo systemctl enable postgresql-11 sudo systemctl start postgresql-11
Κάπου εδώ ολοκληρώθηκε η βασική εγκατάσταση. Για να συνδεθούμε στη βάση για πρώτη φορά θα κάνουμε χρήση του χρήστη postgres που δημιουργεί στη βάση και στο λειτουργικό σύστημα.
sudo -u postgres psql
Με \l μπορούμε να δούμε τις βάσεις που υπάρχουν αυτή την στιγμή.
Μπορούμε να φτιάξουμε εύκολα έναν καινούργιο χρήστη με έναν κωδικό και να τον ορίσουμε superuser ώστε να έχει πλήρη δικαιώματα.
create user stratos with password 'kwdikos'; grant all privileges on database postgres to stratos; alter user stratos with superuser;
Με \du θα δούμε τους διαθέσουμε χρήστες και τα δικαιώματα που έχουν.
Ενώ δημιουργήσαμε όμως τον χρήστη αν πάμε να δοκιμάσουμε να συνδεθούμε δεν θα μας αφήνει .
Αυτό συμβαίνει γιατί στην default συμπεριφορά της PostgreSQL για local connections επιτρέπεται η σύνδεση peer που σημαίνει ότι για να συνδεθεί κάποιος χρήστης θα πρέπει να υπάρχει και χρήστης του λειτουργικού συστήματος που συνδέεται με αυτόν.
Για να το αλλάξουμε αυτό θα πρέπει να βρούμε το pg_hba.conf. Δυστυχώς όμως λόγο ασφαλείας ο χρήστης που έχει μόνο πρόσβαση στο να βρει αυτό το αρχείο στο λειτουργικό είναι ο χρήστης postgres. Με την παρακάτω εντολή βρίσκουμε που βρίσκεται το αρχείο ώστε να μπορούμε να το κάνουμε edit.
sudo -u postgres psql -c 'SHOW hba_file' sudo vi /var/lib/pgsql/11/data/pg_hba.conf
Αλλάζοντας το method από peer σε md5 πλέον θα μπορούμε να συνδεθούμε με χρήση κωδικού. Επίσης αν στο host αλλάξουμε την ip από 127.0.0.1/32 σε 0.0.0.0/0 θα μπορούμε να συνδεθούμε και από άλλον υπολογιστή από όπου και να βρίσκεται.
Για να γίνει αυτό όμως θα πρέπει να ψάξουμε άλλο ένα αρχείο το postgresql.conf.
sudo -u postgres psql -c 'SHOW config_file' sudo vi /var/lib/pgsql/11/data/postgresql.conf
Σε αυτό το αρχείο βγάζουμε το σχόλιο (#) και βάζουμε listen_addresses = ‘0.0.0.0’ και port = 5432.
Για να δουλέψουν αυτές οι ρυθμίσεις χρειάζεται επανεκκίνηση.
sudo systemctl restart postgresql-11
Κάνοντας netstat θα πρέπει να δούμε την ip 0.0.0.0:5432.
netstat -nlp |grep 5432
Δεν ξεχνάμε ότι για απομακρυσμένη πρόσβαση χρειαζόμαστε άνοιγμα της πόρτας και στο firewall.
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent sudo firewall-cmd --reload
Η εγκατάσταση του εργαλείου διαχείρισης pgAdmin
Αφού στα προηγούμενα βήματα έχουμε ολοκληρώσει την εγκατάσταση μπορούμε να κάνουμε εγκατάσταση του διαχειριστικού εργαλείου της PostgreSQL pgAdmin.
Τα βήματα είναι πολύ απλά και τα ακολουθούμε για την εγκατάσταση της web έκδοσης που χρησιμοποιεί apache.
Κατά την εκτέλεση θα μας ζητήσει ένα email και έναν κωδικό που θα είναι αυτά που θα συνδεόμαστε στην πλατφόρμα.
sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm sudo yum install pgadmin4-web sudo /usr/pgadmin4/bin/setup-web.sh
Δεν ξεχνάμε να ανοίξουμε και το firewall στην πόρτα 80.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
Τώρα το μόνο που έχουμε να κάνουμε είναι να μπούμε στην σελίδα localhost/pgadmin4 εσωτερικά ή στο domain που έχουμε εξωτερικά.
Αφού κάνουμε login για να προσθέσουμε servers κάνουμε χρήση του χρήστη που φτιάξαμε πριν με κωδικό. Για να λειτουργήσει θα πρέπει να έχουμε βάλει στο pg_hba.conf ως method md5 ώστε να μπορούμε να συνδεθούμε με κωδικό.