07.06.2023

Ubuntu'da PgAdmin 4 nasıl kurulur ve yapılandırılır

Giriş

pgAdmin, PostgreSQL veritabanı yönetim sistemi ile ilişkili açık kaynaklı bir üründür. PostgreSQL dünyanın en popüler veritabanı yönetim sistemlerinden biridir.

pgAdmin 4, veritabanı nesnelerinin kolay oluşturulması, bakımı ve kullanımı için bir web arayüzü ve bir masaüstü sürümü sağlayan bir nesne-ilişkisel veritabanı kullanarak PostgreSQL ile çalışan yeni başlayanlar ve profesyoneller için kullanımı kolay popüler bir araçtır.

Kurulum için hazırlık

pgAdmin 4 ve PostgreSQL arasında doğru çalışma için yapmanız gerekenler:

Aşama 1 - pgAdmin'in dağıtılması ve bağımlılıkların indirilmesi

İlk olarak paket dizinlerini güncellemek için yerleşik apt yardımcı programını kullanalım.

sudo apt update

Yüksek hassasiyetli bir aritmetik kütüphanesi olan libgmp3-dev'in bağımlılıklarını indirin; libpq-dev, PostgreSQL arka ucuyla çalışmanıza olanak tanıyan bir kütüphane.

sudo apt install libgmp3-dev libpq-dev

Bağlı oturumlar, depolama ve günlük dosyaları hakkında bilgi depolamak için çeşitli dizinlerin oluşturulması.

sudo mkdir -p /var/lib/pgadmin4/sessions
sudo mkdir /var/lib/pgadmin4/storage
sudo mkdir /var/log/pgadmin4

Dizin sahiplerini root'tan serverpace'e değiştirmelisiniz, bazı yardımcı programlar süper kullanıcı modunda hizmetleri çalıştırmak için erişime izin vermez:

sudo chown -R serverspace:serverspace /var/lib/pgadmin4
sudo chown -R serverspace:serverspace /var/log/pgadmin4

Daha sonra environments adında oluşturulan dizine gidelim. Dizinlerin isimlerini Python 3'ün resmi dokümantasyonuna uygun olarak belirliyoruz. Daha önce oluşturduğumuz environments dizinine gidelim ve my_env ortamını başlatalım:

cd environments/
source my_env/bin/activate

my_env sanal ortamını çalıştırdıktan sonra gerekli kütüphaneyi yüklemek için pip paketini güncellemelisiniz. Güncellenmemiş bir pip durumunda, pgAdmin'i kurarken bazı zorluklarla karşılaşabiliriz.
Pip güncellemesi şu şekilde yapılır:

python3 -m pip install -U pip

Bir web tarayıcısı kullanarak, .whl uzantılı pgAdmin 4 dosyasının resmi sitesinden en son sürümü indirmeniz gerekir. Bu Python dağıtımı için standart paket uzantısıdır. Yardımcı program bağlantısını kopyalayın, komut satırına wget komutunu yazın ve bağlantıyı yapıştırın:

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.10/pip/pgadmin4-6.10-py3-none-any.whl

İndirilen paket pip kullanılarak yapılandırılır:

python -m pip install wheel

pgAdmin 4 paketinin kurulumu şu komut ile yapılır:

python -m pip install pgadmin4-6.10-py3-none-any.whl

pgAdmin web arayüzünü sağlamak için Nginx ile arayüz oluşturacak Python WSGI'da Gunicorn'u indirin.

python -m pip install gunicorn

İlk aşama başarıyla tamamlandı. pgAdmin ve bağımlılıkları kuruldu. Veritabanına bağlanmadan önce yapılandırma dosyasında değişiklik yapmanız gerekir.

Aşama 2 - pgAdmin 4'ün Yapılandırılması

Yüklü pgAdmin paketinin dizininde bulunan config.py dosyasının yedek bir kopyasını oluşturmanız gerekir. Gelecekte ana yapılandırma dosyasında değişiklik yapmak veri kaybına neden olabilir:

cp config.py config.py.orig

config.py dosyasını sadece gerekiyorsa düzenleyin, böylece pgAdmin 4'ün verilerine ve performansına zarar vermemiş olursunuz. config_local.py adlı yeni bir dosyaya birkaç değişiklik ekleyelim. Bir dosya oluşturmak için touch yardımcı programını kullanabilir veya hemen oluşturup vim veya nano editöründe açabilirsiniz. Biz vim editörünü kullanacağız:

vim /my_env/lib/python3.10/site-packages/pgadmin4/config_local.py

Açık dosyaya birkaç satır kod ekleyin:

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
SERVER_MODE = True

Bu kod parçası yapar:
LOG_FILE: Günlük dosyasının yolu
SQLITE_PATH: SQLite veritabanındaki kullanıcı verilerinin yolu Dosya /var/lib/pgadmin4/ dizininde saklanır, kullanıcı verilerimiz yükseltmeden sonra kaybolmaz.
SESSION_DB_PATH: Bağlı oturumlar hakkında bilgi içeren bir dizinin yolu.
STORAGE_DIR: Depolama ve sertifika bilgilerini içeren bir dizinin yolu.
SERVER_MODE: Seçilen sunucu modu True'dur.
Çıkmak ve kaydetmek için ESC tuşuna basın, :wq! yazın ve ENTER tuşuna basın.

Konfigürasyonları buradan çalıştırmak için pgAdmin'i başlatın, komutu çalıştırın ve verilerimizi girin:

python environments/my_env/lib/python3.10/site-packages/pgadmin4/setup.py

Dosyayı çalıştırdıktan sonra, pgAdmin web arayüzüne daha fazla giriş verilerimizi girmemiz gerekir:

NOTE: Configuring authentication for SERVER mode. #Kimlik Doğrulama Yapılandırma Bildirimi
Enter the email address and password to use for the initial pgAdmin user account: #pgAdmin'e kaydolmak için bir e-posta adresi girme
Email address: test@serverspace.team #E-posta adresi
Password: #Şifre
Retype password: #Şifrenizi yeniden yazın

pgAdmin kurulumu tamamlandı ve yerel ağda kullanılabilir durumda, şimdi Gunicorn ve Nginx kullanarak uzak masaüstlerine dağıtalım.

Aşama 3 - Gunicorn ve Nginx'in Dağıtımı

Gunicorn, pgAdmin'i bir web uygulaması olarak çalıştırmaktan sorumludur. Şu anda, yerel bilgisayarlardan pgAdmin'e bağlanmak mümkündür; yerel ağ dışında erişim sağlamak için Nginx web sunucusu yapılandırılır. Şimdi /etc/nginx/sites-available/serverspace.io dosyasında değişiklik yapalım:

server {
listen 80; #Listening on port 80 IPv4
listen [::]:80; #In most cases, when starting nginx -t gives an error, is sent to this line, when you get an error, comment out the line
server_name serverspace.io www.serverspace.io; #Server name
location / { #Path
proxy_pass http://unix:/tmp/pgadmin4.sock; #reverse proxy
include proxy_params;
}
}

Python sanal ortamını başlatalım. Birkaç komut kullanarak ters proxy yapılandırmasını etkinleştirin:

source environments/my_env/bin/activate
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir ~/environments/my_env/lib/python3.10/site-packages/pgadmin4 pgAdmin4:app
#Output
[2022-11-04 21:55:37 +0000] [6338] [INFO] Starting gunicorn 20.1.0
[2022-11-04 21:55:37 +0000] [6338] [INFO] Listening at: unix:/tmp/pgadmin4.sock (6338)
[2022-11-04 21:55:37 +0000] [6338] [INFO] Using worker: gthread
[2022-11-04 21:55:37 +0000] [6339] [INFO] Booting worker with pid: 6339

Komut my_env sanal alanından çalıştırılmalı ve çıktı kütüphanelerle ilgili hatalar içermemelidir.

Aşama 4 - pgAdmin 4'e Erişim

Yerel makinede, bir web tarayıcısı başlatın ve adres çubuğunda pgAdmin'in konuşlandırıldığı ana bilgisayarın adresini belirtin http://server_ip/pgadmin4. Yetkilendirme yaparken e-posta, şifre belirleyeceğiz ve Login butonuna tıklayarak yetkilendirmeyi gerçekleştireceğiz (Bkz. Ekran 1)

Ekran 1 - pgAdmin'e Erişim

Başarılı yetkilendirme bize pgAdmin web arayüzünün ana sayfasında gösterilir (bkz. Ekran 2). Standart pencere, yeni bir sunucu eklemekten destek topluluğuna kadar çeşitli özellikleri ve araçları depolar.

Ekran 2 - pgAdmin kontrol paneli

pgAdmin'e erişim sağladıktan sonra PostgreSQL veritabanına bağlanmak için yapılandırma dosyasında küçük bir değişiklik yapalım.

Aşama 5 - PostgreSQL kullanıcı yapılandırması

Önceden oluşturulmuş kullanıcının hesabından veritabanına bağlanmanız gerekir:

su - serverspace && psql

Veritabanı terminalinde, sunucu alanı kullanıcısı için bir parola ekleyin. Bir VTYS'yi dağıtırken, her kullanıcının karmaşık parolalar oluşturması ve kullanıcı ayrıcalıklarını belirtmesi gerekir:

ALTER USER serverspace PASSWORD 'p@55w0rd';

Ctrl + C veya \q tuşlarına basarak çıkın

Yeni Sunucu Ekle aracını kullanarak pgAdmin 4 web arayüzüne yeni bir sunucu ekleyin (bkz. Ekran 3).

Ekran 3 - Yeni bir sunucu ekleme

İsmi girelim (bkz. Şekil 4).

Ekran 4 - Sunucu adı

Bağlantı sekmesine gidin, alanları doldurun Hostname/address (Ana bilgisayaradı/adresi) - localhost, Maintenance database (Bakım veritabanı) - serverpace, Username (Kullanıcı adı) - serverpace, Password (Parola) - komut satırında daha önce belirtilen alanları dolduralım. Alanları doldurduktan sonra Save (Kaydet) düğmesine tıklayın (bkz. Ekran 5).

Ekran 5 - Veritabanına bağlanmak için alanların doldurulması

Bağlantının doğruluğu Tarayıcı sekmesinde kontrol edilir. Sunucular sekmesinde yeni bir sunucunun bağlandığını bildiren semboller (1) görünecektir. Genişletilmiş biçimde Databases (Veritabanları), Login/Group Roles (Oturum Açma/Grup Rolleri), Tablespace (Tablespaces) hakkında bilgi alırız. Veritabanları bölümünde iki postgres veritabanı (PostgreSQL'de varsayılan olarak yüklenen standart veritabanı) ve önceden oluşturulmuş serverspace saklanır. (Bkz. Ekran 6).

Ekran 6 - PostgreSQL tabloları ile sunucu eklendi

Birkaç fare tıklamasıyla bir sunucu eklendi. pgAdmin web arayüzü ile PostgreSQL (psql) arasındaki bağlantı doğru bir şekilde kuruldu ve bağlantı sırasında herhangi bir çakışma gözlenmedi. Uzak bir ana bilgisayar, sunucunun IP adresini kullanarak web arayüzü üzerinden pgAdmin'e bağlanabilir.

Aşama 6 - Web Arayüzünü kullanarak bir tablo oluşturma.

Bir veritabanında tablo oluşturmak için şunları yapmanız gerekir:

  1. İstediğiniz veritabanında Şemalar'ı seçin ve Tablolar'a sağ tıklayın;
  2. Oluştur ve Tablo öğesini seçin. (bkz. Ekran 7)

Ekran 7 - Tablo oluşturma

Genel sekmesinde Tablo oluştur penceresi açılacaktır. Ardından, Name (Ad) alanına tablonun adını girin. Sahip ve Şemalar otomatik olarak doldurulur. Gerekirse, kendi takdirinize bağlı olarak değişiklik yapabilirsiniz (bkz. Ekran 8).

Ekran 8 - Tablo adı

Sütunlar sekmesine gidelim, sütun eklemek şu şekildedir, "+" butonuna basın, Name, Data type ve tüm sütunların boş olmaması için Not NULL değerini belirtin ve birincil anahtarı belirtmek için Primary key'i seçin ve Kaydet'e tıklayın (Bkz. Ekran 9).

Ekran 9 - Tabloda sütun oluşturma

Eklenmiş bir veritabanı ve sütunlarla oluşturulmuş bir tablo var. SQL dilini kullanarak tabloyu doldurmaya başlayalım. Oluşturulan tabloya sağ tıklayıp Betikler ve Betik OLUŞTUR'u seçmelisiniz (bkz. Ekran 10).

Ekran 10 - Bir senaryo oluşturma

Sütunları doldurmak için bir komut dosyası ekleyelim, virgüllerle ayırarak daha fazla bilgi de ekleyebilirsiniz (bkz. Ekran 11).

/*Adding information to a table*/
INSERT INTO public."test_table"(
/*Line names*/
test_col1,
test_col2,
test_col3)
/*Values*/
VALUES
/*Row Information*/
('Test1', 10, 'True'),
('Test2', 20, 'False'),
('Test3', 30, 'True');

Ekran 11 - Bir komut dosyası ekleme

(▶) düğmesini kullanarak isteği yürütmek için komut dosyasını çalıştırın ve düzenleyicinin bulunduğu pencereyi kapatın. Tabloda yapılan değişikliklerin görüntülenmesi şu şekilde gerçekleştirilir: farenin sağ tuşunu kullanarak istenen tabloya tıklayın, {View / Edit Data} öğesini seçin ve {All Rows} öğesini seçin (bkz. Ekran 12)

Ekran 12 - Tüm hatları görüntüle

Tamamlanan sorgunun sonuçlarını içeren bir pencere açılır, ekranın alt kısmında Veri Çıktısı bölümünde tamamlanan veriler saklanır (bkz. Ekran 13)

Screen 13 - Recorded data

Kullanılan yöntem, tabloyu oluşturmak ve doldurmak için kullanılanlardan biri olarak kabul edilir. Ancak, aşağıdaki örnekte yalnızca bir SQL sorgusu kullanılmaktadır ve bunu yapmak için Tables menüsüne sağ tıklayın ve Query Tool öğesini seçin (bkz. Ekran 14).

Ekran 14 - Sorgu aracının açılması

Açılan pencerede, sütunları ve veri türleri olan bir tablo oluşturmak için aşağıdaki sorguyu kullanın ve sütunları "15, 'test_table2', 'True'" değerleriyle bilgilerle doldurun (bkz. Ekran 15).

/*Create a table called test_table2*/
Create table test_table2 (
/*Table attributes*/
test_table1 int,
test_table2 text,
test_table3 boolean );
/*Script to fill the table*/
insert into test_table2 (
/*Entering data into tables and their attributes*/
test_table1,
test_table2,
test_table3 )
/*Fillable Attribute Values*/
values (15, ‘test_table2’, ‘True’);

Ekran 15 - Bir tablo oluşturma ve doldurma

Yeni bir tabloyu kontrol ederken, serverspace veritabanını güncelleyene kadar yeni tabloyu bulamayız. Farenin sağ tuşuyla veritabanına tıklarız ve Refresh öğesini seçeriz (bkz. Ekran 16).

Ekran 16 - Veritabanı güncellemesi

Şimdi kod sorgumuzun sonuçlarını görelim. Veriler yazılı talebe uygun olarak doldurulmuştur (bkz. Ekran 17)

Ekran 17 - Yürütülen talebin sonucu

Grafik arayüz ve SQL sorguları kullanarak iki tablo oluşturuldu. Ayrıca, bir veya bir grup kullanıcıya ayrıcalık vermek için SQL sorgusunu ve GRANT komutunu kullanabilirsiniz.

Sonuçlar

pgAdmin, web arayüzü modunda bir veritabanı ile çalışmak için benzersiz bir araçtır.
Nasıl çalışılır:

  1. Ubuntu Server 22.04'ü yükleyin;
  2. 80/tcp bağlantı noktası için ufw'yi yapılandırın;
  3. Nginx, Python, PostgreSQL yükleyin;
  4. Python sanal ortamı dağıtma;
  5. Gunicorn Kütüphanesini Kurun;
  6. Nginx'te bir ters proxy ayarlama;
  7. Gunicorn ve Nginx'i Birlikte Çalışacak Şekilde Yapılandırma;
  8. pgAdmin sanal sunucusunu yüklemek için komut dosyasını çalıştırın;
  9. Sunucuyu başlatın;
  10. Tarayıcınızı localhost sunucusunun adresine yönlendirin;
  11. Bir sunucu ekleyin, PostgreSQL için veri sağlayın;
  12. Bir tablo oluşturun, verileri doldurun ve düzenleyin.