PostgreSQL'in CentOS'a kurulumundan sonra ve başlatmadan önce gereken ilk yapılandırma.
Yayın Tarihi:17 Aralık 2020.
INFOMARTION > PostgreSQL'in CentOS'a kurulumundan sonra ve başlatmadan önce gereken ilk yapılandırma.
Genel bakış.
Bu, PostgreSQL'i CentOS'a yüklemek ve başlatmak için gereken ilk yapılandırma prosedürüdür. Bilgiler CentOS7 kullanıldığı varsayımına dayanmaktadır. Güvenlikle ilgili bölüm de buna dahildir.
PostgreSQL ücretsiz ve son derece işlevsel olduğu için tavsiye edilir. PostgreSQL fonksiyonlarının eskiden yavaş olduğunu duymuştum, ancak yeni fonksiyonlar gelişti ve daha hızlılar.
Versiyonlar aşağıdaki gibidir.
CentOS sürümü | 7.6 (1810) |
---|---|
PostgreSQL Sürümü | 9.2.24 |
İçindekiler
1. yükleyin
Bu bölümde PostgreSQL'i yükleme prosedürü açıklanmaktadır.
1-1. PostgreSQL'i Yükleme
Yum komutunu kullanarak PostgreSQL kurulumunu gerçekleştirin. Çalışmayı kök kullanıcı olarak gerçekleştirin.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server
2. Kurulum ayrıntıları
Bu bölümde PostgreSQL'in başlatılmasına kadar olan yapılandırma açıklanmaktadır.
2-1. Özel bir PostgreSQL kullanıcısı oluşturun.
PostgreSQL'i yönetmek için özel bir kullanıcı oluşturmak istedim (psql komutlarını kullanın), ancak kullanıcı zaten oluşturulmuştu. Kullanıcıları geçmişte oluşturduğumu hatırlıyorum, bu yüzden belki de özellikler değişmiştir.
Aşağıdaki komutla bir kullanıcıya geçmeyi deneyin.
[root@hostname ~]# su - postgres
Bazı kişiler PostgreSQL'in eski bir sürümünü kullanıyor olabileceğinden, aşağıdaki ".bashrc" dosyasını değiştirerek ortam değişkenlerini ayarlama prosedürünün artık gerekli olmadığını belirtmek gerekir.
export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost
Postgres kullanıcıları için varsayılan PGDATA artık '/var/lib/pgsql/data' olarak görünüyor. "/usr/lib/systemd/system/postgresql.service" adresine atıfta bulunduğu belirtilmektedir.
2-2. PostgreSQL veri hazırlama
PostgreSQL verileri oluşturun. Kodlama UNICODE'dur. "/var/lib/pgsql/data" dizini varsayılan olarak oluşturulmuştur, ancak oluşturmamış olanlardan da bir klasör oluşturmaları istenir.
-bash-4.2$ initdb --encoding=UNICODE
"PGDATA=/var/lib/pgsql/data" "/usr/lib/systemd/system/postgresql.service" içinde ayarlandığından, "initdb --encoding=UNICODE" "/var/lib/pgsql/" altında bir DB oluşturacaktır. data/", DB ise "/var/lib/pgsql/data/" altında oluşturulur.
2-3. Yapılandırma dosyasının değiştirilmesi
IP adreslerinin PostgreSQL'e erişmesine izin verin. Sistemi, yerel olmayan erişim için parola doğrulamalı olacak şekilde kurun.
[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf
'postgresql.conf' dosyasını aşağıdaki gibi değiştirin.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
Güvenliğin önemli bir parçası olduğu için buna ek olarak, bu ayarı koyarsanız, siteye herhangi bir IP'den erişebilirsiniz. Erişilecek IP sabit ise lütfen sabit IP'yi belirtiniz.
Bu ayar, PostgreSQL'in kurulu olduğu sunucudan başka bir sunucudan oturum açarken gereklidir, örn. pgadmin. Sunucuda oturum açar ve psql komutunu çalıştırırsanız bu ayar gerekli değildir. (bağlantı kendisinden (localhost) kaynaklandığı için)
Bu önemli bir güvenlik ayarıdır, bu nedenle buna erişebilecek kullanıcı sayısını mümkün olduğunca en aza indirin.
Ardından 'pg_hba.conf' dosyasını değiştirin.
[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf
Aşağıdaki bilgileri belgenin sonuna ekleyin.
#Dışarıdan şifre doğrulama.
host all all 0.0.0.0/0 md5
Bu ayar dahil edildiğinde, dışarıdan bağlanırken bir şifre gereklidir. Bu alanlar ayarlanmadığında veya yanlış ayarlandığında ciddi güvenlik açıklarına neden olabilir, bu nedenle lütfen bunları en son özenle ayarlayın.
2-4. bootstrap kontrolü
Ön yapılandırma tamamlandığına göre, PostgreSQL'in başladığını kontrol edin. DB bir postgres kullanıcısı olarak oluşturulduğundan, başlamadan önce postgres kullanıcısına geçin.
[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start
PostgreSQL başarıyla başlatıldıktan sonra psql komutunun sorunsuz çalışıp çalışmadığını kontrol edin. Psql komutunu postgres kullanıcısı olarak çalıştırın.
-bash-4.2$ psql -l
Database List
Name | Owner | Encoding | Collation Order | Ctype(conversion operator) | Access rights
-----------+----------+------------------+--------------------+----------------------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 lines)
Yukarıdaki sonuçlar döndürülürse sorun yoktur.
2-5. Otomatik başlatma ayarı
Zorunlu olmamakla birlikte, sunucu her yeniden başlatıldığında PostgreSQL'i başlatmak zordur, bu nedenle sunucu başlatıldığında PostgreSQL otomatik olarak başlayacak şekilde yapılandırılır. Ayrıca systemctl komutuna da kaydolur. Lütfen bu prosedürün CentOS7 için olduğunu unutmayın, bu nedenle CentOS7'den başka bir şey kullanıyorsanız, bununla başa çıkmak için Service komutunu kullanmanız gerekecektir.
'/usr/lib/systemd/system/postgresql.service' dosyasının var olup olmadığını kontrol edin. Değilse, aşağıdaki prosedürü kullanarak 'postgresql.service' dosyasını oluşturun. Kök kullanıcı olarak çalıştırın.
[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service
Aşağıdaki bilgiler verilmiştir.
[Unit]
#Açıklama.
Description=PostgreSQL
#Yürütme öncesi ve sonrası kontrol.
#Before=xxx.service
After=network.target
[Service]
#Kullanıcı ve grup tanımlama
User=postgres
Group=postgres
#Etkinleştirildikten sonra durumu Etkinleştirildi olarak ayarlayın.
Type=oneshot
RemainAfterExit=yes
#Başlat, durdur ve yeniden yükle.
Environment=PGDATA=/var/lib/pgsql/data
ExecStart=/usr/bin/pg_ctl start -D /var/lib/pgsql/data
ExecStop=/usr/bin/pg_ctl stop
ExecReload=/usr/bin/pg_ctl reload
[Install]
#Çalışma seviyesi 3 eşdeğer ayarları.
WantedBy=multi-user.target
Ardından, systemctl komutu ile kayıt olun.
[root@hostname ~]# systemctl enable postgresql
[root@hostname ~]# systemctl is-enabled postgresql
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postgresql
postgresql.service enabled
[root@hostname ~]# systemctl daemon-reload
2-6. PostgreSQL'e yönetici kullanıcı ekleme
PostgreSQL uygulaması içinde kullanılmak üzere, PostgreSQL'i Linux'tan çalıştıran kullanıcıdan ayrı bir kullanıcı oluşturun. Bu, pgadmin vb. ile çalışırken kullanıcıdır. Varsayılan olarak var olan postgres kullanıcısının şifresini değiştirmek ve kullanmak istiyorum.
Aşağıdaki komutu postgres kullanıcısı olarak çalıştırın.
-bash-4.2$ psql
postgres=# alter role postgres with password '(bilgisayar) şifre';
postgres=# \q
※Ayarlamak istediğiniz şifreyi 'Şifre' alanına girin.
2-7. Güvenlik duvarlarının delinmesi
PostgreSQL bağlantı noktasına erişime izin verin çünkü güvenlik duvarı (CentOS6 ve öncesi için iptables) CentOS7'de varsayılan olarak yalnızca ssh erişimine izin verir. Yapılandırmayı kalıcı hale getirmek için 'kalıcı' seçeneğini de ekleyin.
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=5432/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 8080/tcp 5432/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Eğer 'ports: 5432/tcp' yazıyorsa, sorun yok demektir.
pgadmin üzerinden erişim. Yeni belirlediğiniz parola ile bir postgres kullanıcısı olarak oturum açabilmeniz gerekir.
3. özet
PostgreSQL kurulduğunda gereken ilk yapılandırmayı açıkladık. PostgreSQL'in ilk kurulumu zor olabilir, bu nedenle lütfen bu bölüme bakın.
Sonuna kadar izlediğiniz için teşekkür ederiz.
■INFORMATION
BİLGİ üst sayfasına gitmek için lütfen buraya tıklayınız.
■PROFILE
Profil için lütfen buraya tıklayınız.
■İletişim bilgileri.
Makaleyle ilgili sorularınız için lütfen bizimle buradan iletişime geçin.