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:
- Ubuntu Server 22.04 dağıtıldı. sudo komut erişimine sahip bir kullanıcı. Ufw güvenlik duvarını yapılandırmak için yardımcı program. Sizi talimatı kullanmaya davet ediyoruz;
- Nginx ters proxy olarak kuruldu ve yapılandırıldı
- PostgreSQL yüklendi, veritabanımıza yeni bir kullanıcı ve bağlanılacak veritabanı pgAdmin eklemeniz gerekiyor;
- Python'da dağıtılan Sanal ortam;
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.
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.
Bağlı oturumlar, depolama ve günlük dosyaları hakkında bilgi depolamak için çeşitli dizinlerin oluşturulması.
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/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:
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:
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:
İndirilen paket pip kullanılarak yapılandırılır:
pgAdmin 4 paketinin kurulumu şu komut ile yapılır:
pgAdmin web arayüzünü sağlamak için Nginx ile arayüz oluşturacak Python WSGI'da Gunicorn'u indirin.
İ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:
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:
Açık dosyaya birkaç satır kod ekleyin:
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:
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:
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:
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir ~/environments/my_env/lib/python3.10/site-packages/pgadmin4 pgAdmin4:app
[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)
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.
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:
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:
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).
İsmi girelim (bkz. Şekil 4).
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).
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).
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:
- İstediğiniz veritabanında Şemalar'ı seçin ve Tablolar'a sağ tıklayın;
- Oluştur ve Tablo öğesini seçin. (bkz. Ekran 7)
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).
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).
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).
Sütunları doldurmak için bir komut dosyası ekleyelim, virgüllerle ayırarak daha fazla bilgi de ekleyebilirsiniz (bkz. Ekran 11).
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');
(▶) 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)
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)
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).
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 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’);
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).
Şimdi kod sorgumuzun sonuçlarını görelim. Veriler yazılı talebe uygun olarak doldurulmuştur (bkz. Ekran 17)
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:
- Ubuntu Server 22.04'ü yükleyin;
- 80/tcp bağlantı noktası için ufw'yi yapılandırın;
- Nginx, Python, PostgreSQL yükleyin;
- Python sanal ortamı dağıtma;
- Gunicorn Kütüphanesini Kurun;
- Nginx'te bir ters proxy ayarlama;
- Gunicorn ve Nginx'i Birlikte Çalışacak Şekilde Yapılandırma;
- pgAdmin sanal sunucusunu yüklemek için komut dosyasını çalıştırın;
- Sunucuyu başlatın;
- Tarayıcınızı localhost sunucusunun adresine yönlendirin;
- Bir sunucu ekleyin, PostgreSQL için veri sağlayın;
- Bir tablo oluşturun, verileri doldurun ve düzenleyin.