Centos 7 üzerine PostgreSQL 11 kurulumu için aşağıdaki adımları takip edebilirsiniz.

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Yukarıdaki komut ile PostgreSQL reposunu sistemimize tanımlıyoruz.

sudo yum repolist 

Yukarıdaki komut ile repomuzun eklenip eklenmediğini kontrol edebiliriz. Çıktı aşağıdaki gibi olmalı.

pgdg-common/7/x86_64                              PostgreSQL common RPMs for RHEL/CentOS 7 - x86_64                                                                                 
pgdg10/7/x86_64                                   PostgreSQL 10 for RHEL/CentOS 7 - x86_64                                                                                              
pgdg11/7/x86_64                                   PostgreSQL 11 for RHEL/CentOS 7 - x86_64                                                                                            
pgdg12/7/x86_64                                   PostgreSQL 12 for RHEL/CentOS 7 - x86_64                                                                                              
pgdg13/7/x86_64                                   PostgreSQL 13 for RHEL/CentOS 7 - x86_64                                                                                             
pgdg96/7/x86_64                                   PostgreSQL 9.6 for RHEL/CentOS 7 - x86_64                                                                                             

Aşağıdaki komut ile kurulum işlemini başlatıyoruz.

sudo yum install postgresql11-server

Aşağıdaki komutla kurulumu tamamlıyoruz.

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

Çıktı şöyle olmalıdır;

Initializing database … OK

Aşağıdaki komutla sistem açıldığında otomatik çalışması işlem yaptırıyoruz.

sudo systemctl enable postgresql-11.service

Aşağıdaki komutla servisi başlatıyoruz.

sudo systemctl start postgresql-11.service

Şimdi aşağıdaki komutla PostgreSQL’e giriş yapalım.

sudo -u postgres psql

Veri tabanı oluşturmak için aşağıdaki komutu kullanabilirsiniz. ( test_db açılacak veri tabanının adıdır. Bunu istediğiniz gibi değiştirebilirsiniz. )

CREATE DATABASE test_db;

Kullanıcı oluşturmak için aşağıdaki komutu kullanabilirsiniz. ( Test123 yazan kısım ilgili kullanıcının şifresidir. Bunu kendinize göre değiştirin. ) ( test_user açacağınız kullanıcının adıdır. Bunu istediğiniz gibi değiştirebilirsiniz. )

CREATE USER test_user WITH ENCRYPTED PASSWORD 'Test123';

Açtığınız kullanıcıya yine açtığımız veri tabanında yetki vermek için aşağıdaki komutu kullanabilirsiniz.

GRANT ALL PRIVILEGES ON DATABASE test_db TO test_user;

Kullanıcınız ile SSH üzerinden PSQL’e giriş yapmak istiyorsanız LOGIN yetkisi vermelisiniz.

ALTER ROLE "test_user" WITH LOGIN;

Aşağıdaki komut ile PSQL’den çıkalım.

\q

Şimdi aşağıdaki komut ile oluşturduğumuz kullanıcıya giriş yapmaya çalışalım.

psql -U test_user -d test_db -h localhost

Aşağıdaki gibi hata verecektir. Bunun sebebi ayar dosyanızda giriş yönteminin şifre ile olamasıdır.

psql: FATAL:  Ident authentication failed for user "test_db"

Aşağıdaki komutla ilgili ayar dosyasını açalım. Nano paketi yüklü değilse “yum -y install nano” ile kurabilirsiniz.

nano /var/lib/pgsql/11/data/pg_hba.conf 

Aşağıya dosyanın içerisinde bulunan kısımların değiştirilmeden önceki halini yazıyorum.

 local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Değiştirildikten sonra şöyle olmalı.

 local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Yukarıda gördüğünüz üzere peer ve ident kısımlarını md5 olarak değiştirdik.

Şimdi aşağıdaki komutla servisi yeniden başlatalım.

service postgresql-11 restart

Tekrardan açtığımız kullanıcı ve veri tabanına giriş yapmaya çalışalım.

psql -U test_user -d test_db -h localhost 

Komutu yazdıktan sonra size kullanıcıyı oluştururken yazdığınız şifreyi soracak. Şifreyi yazıp [ENTER]’a basın.

Giriş yaptıktan sonra veri tabanındaki tabloları görmek için aşağıdaki komutu uygulayabilirsiniz.

\dt

BONUS: Veri tabanını import etmek için aşağıdaki komutu kullanabilirsiniz. ( Export ettiğiniz ve import ettiğiniz sunucunun versiyonlarının birbiri ile aynı veya çok yakın olmasına özen gösterin. Haricinde import sorunları ile karşı karşıya kalmanız muhtemel olacaktır. )

sudo -u postgres psql test_db -f test_db.sql 

Yukarıdaki komutu uyguladığınızda size şifre soracaktır. Şifreyi girdiğinizde veri tabanı import işleminiz başlayacaktır.

BONUS 2: Postgres kullanıcısının şifresini aşağıdaki komutla değiştirebilirsiniz. ( Test123 yazan kısmı istediğiniz bir şifre ile değiştirebilirsiniz. )

sudo -u postgres psql

ALTER USER postgres PASSWORD 'Test123';