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';