Android

Centos 8'e Postgresql Kurulumu

Postgresql Kurulum

Postgresql Kurulum

İçindekiler:

Anonim

PostgreSQL veya Postgres, hataya dayanıklı ortamlar veya karmaşık uygulamalar oluşturmanıza olanak tanıyan birçok gelişmiş özelliğe sahip, açık kaynaklı, genel amaçlı bir nesne-ilişkisel veritabanı yönetim sistemidir.

Bu kılavuzda, PostgreSQL veritabanı sunucusunun CentOS 8'e nasıl kurulacağını tartışacağız. Yüklenecek sürümü seçmeden önce uygulamalarınızın desteklediğinden emin olun.

Ayrıca PostgreSQL veritabanı yönetiminin temellerini araştıracağız.

Ön şartlar

Paketleri kurabilmek için sudo ayrıcalıklarına sahip root veya kullanıcı olarak oturum açmanız gerekir.

Centgre 8'e PostgreSQL Kurulumu

Bu makaleyi yazarken, standart CentOS depolarından yükleme için iki PostgreSQL sunucusu sürümü bulunmaktadır: sürüm 9.6 ve 10.0.

Kullanılabilir PostgreSQL modülü akışlarını listelemek için şunu yazın:

dnf module list postgresql

Çıktı, postgresql modülünün iki akışla kullanılabileceğini gösterir. Her akışta iki profil bulunur: sunucu ve istemci. Profil sunuculu Akış 10 varsayılan değerdir:

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. Varsayılan akışı yüklemek için PostgreSQL sunucusu sürüm 10.0 şunları yazın:

    sudo dnf install @postgresql:10

    PostgreSQL sunucusu sürüm 9.6'yı yüklemek için:

    sudo dnf install @postgresql:9.6

PostgreSQL veritabanı için çeşitli ek özellikler sağlayan katkıda bulunan paketi de yüklemek isteyebilirsiniz:

sudo dnf install postgresql-contrib

Yükleme tamamlandığında, PostgreSQL veritabanını aşağıdaki komutla başlatın:

sudo postgresql-setup initdb

Initializing database… OK

PostgreSQL hizmetini başlatın ve önyüklemede başlamasını sağlayın:

sudo systemctl enable --now postgresql

PostgreSQL veritabanı sunucusuna bağlanarak sürümünü doğrulamak için psql aracını kullanın ve sürümünü yazdırın:

sudo -u postgres psql -c "SELECT version();"

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

PostgreSQL Rolleri ve Kimlik Doğrulama Yöntemleri

PostgreSQL, roller kavramını kullanarak veritabanı erişim izinlerini işler. Rol, bir veritabanı kullanıcısını veya bir grup veritabanı kullanıcısını temsil edebilir.

PostgreSQL çoklu kimlik doğrulama yöntemlerini destekler. En yaygın olarak kullanılan yöntemler:

  • Güven - pg_hba.conf tanımlanan koşullar pg_hba.conf sürece rol parola olmadan bağlanabilir. Parola - Parola sağlayarak rol bağlanabilir. Parolalar scram-sha-256 , md5 ve password (açık metin) olarak saklanabilir. Kimlik - Yalnızca TCP / IP bağlantılarında desteklenir. İsteğe bağlı bir kullanıcı adı eşlemesi ile istemcinin işletim sistemi kullanıcı adını elde ederek çalışır.Peer - Ident ile aynıdır, ancak yalnızca yerel bağlantılarda desteklenir.

PostgreSQL istemci kimlik doğrulaması pg_hba.conf adlı yapılandırma dosyasında tanımlanır. Varsayılan olarak, yerel bağlantılar için PostgreSQL eş kimlik doğrulama yöntemini kullanacak şekilde ayarlanmıştır.

PostgreSQL sunucusu yüklendiğinde postgres kullanıcısı otomatik olarak oluşturulur. Bu kullanıcı PostgreSQL örneği için süper kullanıcıdır. MySQL kök kullanıcısına eşdeğerdir.

PostgreSQL sunucusunda postgres kullanıcısı olarak oturum açmak için önce kullanıcıya geçin ve psql yardımcı programını kullanarak PostgreSQL komut istemine erişin:

sudo su - postgres psql

Buradan PostgreSQL örneğiyle etkileşime geçebilirsiniz. PostgreSQL kabuğundan çıkmak için şunu yazın:

\q

PostgreSQL komut istemine sudo komutu ile kullanıcı değiştirmeden de erişebilirsiniz:

sudo -u postgres psql

Genellikle postgres kullanıcısı yalnızca yerel ana bilgisayardan kullanılır.

PostgreSQL Rolü ve Veritabanı Oluşturma

Yalnızca CREATEROLE ayrıcalığına sahip süper kullanıcılar ve roller yeni roller oluşturabilir.

Aşağıdaki örnekte, john adlı yeni bir rol, johndb adlı bir veritabanı oluşturacağız ve veritabanına ayrıcalıklar johndb .

  1. İlk olarak PostgreSQL kabuğuna bağlanın:

    sudo -u postgres psql

    Aşağıdaki komutu kullanarak yeni bir PostgreSQL rolü oluşturun:

    create role john;

    Yeni bir veritabanı oluşturun:

    create database johndb;

    Aşağıdaki sorguyu çalıştırarak veritabanında kullanıcıya ayrıcalık verin:

    grant all privileges on database johndb to john;

PostgreSQL sunucusuna uzaktan erişimi etkinleştir

Varsayılan olarak, PostgreSQL sunucusu yalnızca yerel arayüzde dinler 127.0.0.1 .

PostgreSQL sunucunuza uzaktan erişimi etkinleştirmek için yapılandırma dosyasını açın:

sudo nano /var/lib/pgsql/data/postgresql.conf

CONNECTIONS AND AUTHENTICATION bölümüne gidin ve aşağıdaki satırı ekleyin / düzenleyin:

/var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

Dosyayı kaydedin ve PostgreSQL hizmetini aşağıdakilerle yeniden başlatın:

sudo systemctl restart postgresql

Değişiklikleri ss yardımcı programıyla doğrulayın:

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Yukarıdaki çıktı, PostgreSQL sunucusunun tüm arabirimlerde (0.0.0.0) varsayılan bağlantı noktasını dinlediğini göstermektedir.

Son adım, pg_hba.conf dosyasını düzenleyerek sunucuyu uzak bağlantıları kabul edecek şekilde yapılandırmaktır.

Aşağıda farklı kullanım durumlarını gösteren bazı örnekler verilmiştir:

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

# TYPE DATABASE USER ADDRESS METHOD # The user jane can access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane can access only the janedb database from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane can access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Sonuç

CentOS 8 iki PostgreSQL sürümü sunar: 9.6 ve 10.0.

Bu konu hakkında daha fazla bilgi için PostgreSQL Belgelerini ziyaret edin

centos postgresql veritabanı