CodeGym /Kurslar /SQL SELF /PostgreSQL quraşdırılması və sazlanmasında tipik səhvlər

PostgreSQL quraşdırılması və sazlanmasında tipik səhvlər

SQL SELF
Səviyyə , Dərs
Mövcuddur

1. PostgreSQL-in əsas komponentləri

Installer sənə üç əsas şeyi quraşdırmalıdır: server və iki client. İndi onlar haqqında bir az danışacam.

Server postgres

Bu, PostgreSQL-in ürəyidir. Server aşağıdakılara cavabdehdir:

  • Client sorğularının işlənməsi.
  • Verilənlərin idarə olunması: oxumaq, yazmaq, yeniləmək.
  • Verilənlərin təhlükəsizliyi və bütövlüyünü təmin etmək.

PostgreSQL serverini işə salanda, o artıq client-lərdən sorğu qəbul etməyə hazır olur.

Client-lər

Client-lər — serverə qoşulub ona SQL-sorğular göndərən proqramlardır. PostgreSQL-də bir neçə məşhur client var:

  • psql proqramı: PostgreSQL ilə işləmək üçün command line. "Oldschool" developer-lər və terminal sevənlər üçün idealdır.
  • pgAdmin proqramı: serveri idarə etmək üçün qrafik interfeys. Bu, database-lə işləmək üçün İsveçrə bıçağı kimidir — həm gözəl, həm rahat.
  • Başqa client-lər: əslində PostgreSQL-lə işləmək üçün onlarla kitabxana və alət var, məsələn, Python üçün psycopg3 və ya Ruby üçün pg.

Bu komponentlər necə işləyir? İstifadəçi client vasitəsilə (psql/pgAdmin) sorğu göndərir → client sorğunu postgres serverinə ötürür → server sorğunu fayl sistemindən və öz yaddaşından istifadə edərək işləyir → nəticə client-ə qaytarılır.

2. Konsol vasitəsilə baza ilə qoşuluruq

Ümid edirəm yadındadır, psql — PostgreSQL ilə command line-da işləmək üçün proqramdır. Tez bir şey yoxlamaq, sorğu icra etmək və ya bazanı öyrənmək istəyirsənsə, əladır.

Nümunə: psql istifadə etmək


# Serverə qoşuluruq
psql -U postgres

Hər şey uğurla alınsa, təxminən belə bir ekran görəcəksən:


psql (17.5)
Type "help" for help.

postgres=#

Təbrik edirəm, artıq psql içində command line-dasan!

Qoşulma qurulan kimi, komandalar icra edə bilərsən:


-- Baza yaratmaq
CREATE DATABASE test_db;

-- Bazaların siyahısına baxmaq
\l

-- Müəyyən bir bazaya keçmək
\c test_db

-- Sessiyanı bitirmək
\q

Bu, "birbaşa işləməyi" sevənlər üçün super alətdir.

3. Quraşdırma zamanı əsas problemlər

Bəs nəsə alınmadısa? Bazaların siyahısını görmədin, ya da login ola bilmədin? Installer işi bitirdi və salam 😡 Səhvlər, konsolda əsəbi mesajlar, postgres işə düşmür, psql səni tanımırmış kimi davranır. Tanışdır? Təbriklər — klassik "hər şeyi düz etdim, amma heç nə işləmir" mərhələsindəsən. 😅

Gəlin ən məşhur tələlərə baxaq, hər ikinci yeni başlayan ora düşür. Soyuqqanlılıq, isti çay və hər bir log səhvini məğlub etmək üçün qətiyyətlə silahlan — bu gün PostgreSQL-ə "yalnız mentorun kompunda işləyir" sindromunu unutdururuq. 🛠️🐘

Problem 1. Port konflikti

Yəqin ən çox rast gəlinən hal budur. PostgreSQL default olaraq 5432 portundan istifadə edir. Əgər bu port artıq başqa proqram tərəfindən tutulubsa, quraşdırma problemsiz keçəcək, amma serveri işə sala bilməyəcəksən.

Problemi necə tanımaq olar?

PostgreSQL işə salanda server işləməkdən imtina edir və ya belə bir mesaj verir:


could not bind IPv4 socket: Address already in use

Həll:

Hansı proqramın 5432 portunu tutduğunu yoxla. Linux-da bu komanda ilə:


sudo netstat -tuln | grep 5432

Windows-da konsolda belə yoxla:


netstat -ano | find "5432"

Əgər port həqiqətən tutulubsa, PostgreSQL üçün portu dəyişə bilərsən. postgresql.conf faylını aç (PostgreSQL-in data qovluğunda yerləşir) və bu sətri tap:


#port = 5432

Portu başqa bir sərbəst porta dəyiş, məsələn:


port = 5433

Dəyişiklikdən sonra serveri yenidən başlatmağı unutma.

Problem 2. Kifayət qədər hüquq yoxdur

Windows-da PostgreSQL installer-i düzgün başa çatdıra bilməyə bilər, çünki cari istifadəçinin kifayət qədər hüququ yoxdur.

Problemi necə tanımaq olar?

Installer donur və ya hüquq çatışmazlığı barədə mesaj verir.

Həll:

Quraşdırmanı administrator kimi işə sal. Bunun üçün installer-ə sağ klik et və "Administrator kimi işə sal" seç.

Problem 3. Ətraf mühit dəyişənləri ilə problemlər

Bəzən PostgreSQL quraşdırıldıqdan sonra psql komandası command line-da tanınmır.

Problemi necə tanımaq olar?

psql işə salanda belə bir mesaj görürsən:


'psql' is not recognized as an internal or external command

Həll:

Bu səhv PostgreSQL-in bin fayllarının olduğu qovluğun (məsələn, C:\Program Files\PostgreSQL\17\bin) ətraf mühit dəyişənlərinə əlavə olunmaması ilə bağlıdır.

Windows-da bunu düzəltmək üçün:

  1. "Sistem xüsusiyyətləri" → "Əlavə" → "Ətraf mühit dəyişənləri" aç.
  2. "Sistem dəyişənləri" bölməsində Path dəyişənini tap və redaktə et.
  3. PostgreSQL-in bin qovluğunun yolunu əlavə et. Məsələn:
    
    C:\Program Files\PostgreSQL\17\bin
            
  4. Bundan sonra command line-ı yenidən başlat.

4. Serverə qoşulmada səhvlər

Bəzən hər şey problemsiz gedir: PostgreSQL-i işə salırsan, psql açırsan və baza ilə qoşulma problemsiz alınır. Amma bəzən də alınmır. Birdən səhv çıxır. Nəsə səni buraxmır. Parol düz kimi, server işləyir... Amma psql sənə əsəbi mesaj verir.

Panik etmə — belə səhvlər hamıda olur. Aşağıda ən çox rast gəlinən qoşulma problemlərinə və onların tez həllinə baxacağıq.

Problem 1. postgres istifadəçisi üçün səhv parol

PostgreSQL quraşdıranda, postgres superuser üçün parol təyin edirsən. Əgər parolu unutmusansa və ya səhv yazmısansa, serverə qoşula bilməyəcəksən.

Problemi necə tanımaq olar?

Qoşulma komandası yazanda:


psql -U postgres

Belə bir səhv alırsan:


password authentication failed for user "postgres"

Həll:

postgres üçün parolu unutmusansa, onu sıfırlamaq olar:

  1. pg_hba.conf faylını aç, bu fayl PostgreSQL-in data qovluğunda yerləşir C:\Program Files\PostgreSQL\17\data
  2. Bu sətri tap və dəyiş:
    
    host    all             all             127.0.0.1/32            md5
            
    Bu ilə əvəz et:
    
    host    all             all             127.0.0.1/32            trust
            

    Bu, müvəqqəti olaraq parol yoxlamasını söndürəcək.

  3. PostgreSQL serverini yenidən başlat.
  4. Parolsuz baza ilə qoşul:
    
    psql -U postgres
            
  5. Parolu dəyiş:
    
    ALTER ROLE postgres PASSWORD 'new_password';
            
  6. pg_hba.conf parametrlərini əvvəlki vəziyyətə qaytar və serveri yenidən başlat.

Problem 2. Səhv host və ya port

Əgər psql-client serverə qoşula bilmirsə, host və port parametrlərinin düzgün olduğuna əmin ol.

Problemi necə tanımaq olar?

Qoşulma səhvi belə görünə bilər:


could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

Həll:

PostgreSQL serverinin işlədiyinə əmin ol:


systemctl status postgresql

(Linux) və ya Windows-da "Xidmətlər" (Services) aç (Ctrl+Shift+Esc).

Server işləyirsə, pg_hba.conf parametrlərini yoxla. Lokal host (127.0.0.1) və öz IP ünvanın üçün qoşulma sətrlərinin düzgün olduğuna əmin ol. Məsələn:


host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.100/32        md5

5. Problemlərin aradan qaldırılması üçün ümumi məsləhətlər

  • PostgreSQL log-larından istifadə et
    Log-lar — ən yaxşı dostundur. Onlar PostgreSQL-in data qovluğunda yerləşir (məsələn, /var/log/postgresql/ Linux-da). Nəsə alınmadısa, log-ları analiz etməklə başla.
  • Sənədləşməni yoxla
    PostgreSQL-in sənədləşməsi ən yaxşılarındandır. Səhvlə qarşılaşsan, böyük ehtimalla rəsmi sənədlərdə həllini tapacaqsan: https://www.postgresql.org/docs/.
  • Community-dən istifadə et
    Əgər ilişib qaldınsa, Stack Overflow, ChatGPT və ya PostgreSQL forumlarına bax. Hazır həll tapmaq şansın yüksəkdir.

P.S.

Vacibdir! Əgər heç nə işləmədisə — bizə dəstəyə yaz: problemini həll edəcəyik və sonra bu məqaləni yeniləyəcəyik.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION