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.rpmYukarı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-serverAşağıdaki komutla kurulumu tamamlıyoruz.
sudo /usr/pgsql-11/bin/postgresql-11-setup initdbÇıktı şöyle olmalıdır;
Initializing database … OKAşağıdaki komutla sistem açıldığında otomatik çalışması işlem yaptırıyoruz.
sudo systemctl enable postgresql-11.serviceAş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 psqlVeri 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 localhostAş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 identDeğ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 md5Yukarı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 restartTekrardan 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.
\dtBONUS: 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';