{"id":37454,"date":"2026-01-05T14:40:55","date_gmt":"2026-01-05T11:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37454"},"modified":"2026-01-05T14:40:55","modified_gmt":"2026-01-05T11:40:55","slug":"rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","title":{"rendered":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, g\u00fcvenilir, \u00f6l\u00e7eklenebilir ve g\u00fc\u00e7l\u00fc veritaban\u0131 sistemleri her t\u00fcrl\u00fc uygulaman\u0131n bel kemi\u011fini olu\u015fturmaktad\u0131r. A\u00e7\u0131k kaynakl\u0131 veritaban\u0131 \u00e7\u00f6z\u00fcmleri aras\u0131nda \u00f6ne \u00e7\u0131kan PostgreSQL, kurumsal d\u00fczeyde \u00f6zellikler, geli\u015fmi\u015f veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve geni\u015fletilebilirlik yetenekleri sunarak geli\u015ftiriciler ve sistem y\u00f6neticileri i\u00e7in pop\u00fcler bir tercih haline gelmi\u015ftir. Bu makale, kurumsal s\u0131n\u0131f bir Linux da\u011f\u0131t\u0131m\u0131 olan Rocky Linux 9 \u00fczerinde PostgreSQL&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131, temel yap\u0131land\u0131rmalar\u0131n\u0131n nas\u0131l yap\u0131laca\u011f\u0131n\u0131 ve g\u00fcnl\u00fck kullan\u0131m senaryolar\u0131nda nas\u0131l etkili bir \u015fekilde kullan\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r.<\/p>\n<h3>PostgreSQL Nedir?<\/h3>\n<p>PostgreSQL, d\u00fcnyadaki en geli\u015fmi\u015f a\u00e7\u0131k kaynakl\u0131 ili\u015fkisel veritaban\u0131 y\u00f6netim sistemlerinden (RDBMS) biridir. 30 y\u0131l\u0131 a\u015fk\u0131n s\u00fcredir geli\u015ftirilmekte olan bu proje, sa\u011flaml\u0131\u011f\u0131, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcne verdi\u011fi \u00f6nem, esnekli\u011fi ve standartlara uyumu ile tan\u0131n\u0131r. PostgreSQL, SQL dilini destekler ve bir\u00e7ok geli\u015fmi\u015f \u00f6zelli\u011fi b\u00fcnyesinde bar\u0131nd\u0131r\u0131r. Bunlar aras\u0131nda karma\u015f\u0131k sorgular, ACID (Atomicity, Consistency, Isolation, Durability) uyumlulu\u011fu, yabanc\u0131 anahtarlar, birle\u015ftirilebilir g\u00f6r\u00fcn\u00fcmler, tetikleyiciler, sakl\u0131 yordamlar ve \u00e7oklu e\u015fzamanl\u0131l\u0131k kontrol\u00fc (MVCC &#8211; Multi-Version Concurrency Control) say\u0131labilir. Ayr\u0131ca, JSON, XML, HSTORE gibi yap\u0131land\u0131r\u0131lm\u0131\u015f ve yar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f veri tiplerini desteklemesi sayesinde modern uygulama geli\u015ftirme ihtiya\u00e7lar\u0131na da cevap verebilmektedir.<\/p>\n<h3>Neden PostgreSQL?<\/h3>\n<p>PostgreSQL&#8217;i tercih etmek i\u00e7in bir\u00e7ok ge\u00e7erli neden bulunmaktad\u0131r:<\/p>\n<ul>\n<li><strong>A\u00e7\u0131k Kaynak ve \u00dccretsiz:<\/strong> PostgreSQL, BSD lisans\u0131 alt\u0131nda da\u011f\u0131t\u0131l\u0131r, bu da onu ticari kullan\u0131m da dahil olmak \u00fczere her t\u00fcrl\u00fc kullan\u0131m i\u00e7in tamamen \u00fccretsiz ve \u00f6zg\u00fcr k\u0131lar. Lisans maliyetlerinden tasarruf sa\u011flar.<\/li>\n<li><strong>G\u00fcvenilirlik ve Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc:<\/strong> ACID uyumlulu\u011fu, veri kayb\u0131n\u0131 \u00f6nlemek ve veritaban\u0131 i\u015flemlerinin tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in temel bir garantidir. PostgreSQL, bu konuda sekt\u00f6rdeki en y\u00fcksek standartlar\u0131 sunar.<\/li>\n<li><strong>Geli\u015fmi\u015f \u00d6zellikler:<\/strong> Geli\u015fmi\u015f indeksleme teknikleri (GIN, BRIN, SP-GiST), tablo b\u00f6l\u00fcmlendirme (table partitioning), mant\u0131ksal \u00e7o\u011faltma (logical replication) ve paralel sorgu y\u00fcr\u00fctme gibi \u00f6zellikler, b\u00fcy\u00fck ve karma\u015f\u0131k veri k\u00fcmeleriyle \u00e7al\u0131\u015fmay\u0131 kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>Geni\u015fletilebilirlik:<\/strong> PostgreSQL, kullan\u0131c\u0131lar\u0131n kendi veri tiplerini, fonksiyonlar\u0131n\u0131, operat\u00f6rlerini ve hatta indeksleme y\u00f6ntemlerini tan\u0131mlamalar\u0131na olanak tan\u0131yan son derece geni\u015fletilebilir bir mimariye sahiptir. Bu, PostGIS gibi co\u011frafi veri uzant\u0131lar\u0131n\u0131n veya PL\/Python, PL\/pgSQL gibi prosed\u00fcrel dillerin entegrasyonunu m\u00fcmk\u00fcn k\u0131lar.<\/li>\n<li><strong>Topluluk Deste\u011fi:<\/strong> D\u00fcnya genelinde geni\u015f ve aktif bir geli\u015ftirici ve kullan\u0131c\u0131 toplulu\u011funa sahiptir. Bu topluluk, sorun giderme, yeni \u00f6zellikler geli\u015ftirme ve dok\u00fcmantasyon sa\u011flama konusunda \u00f6nemli bir kaynakt\u0131r.<\/li>\n<li><strong>Performans:<\/strong> Do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda ve optimize edildi\u011finde, PostgreSQL y\u00fcksek performansl\u0131 uygulamalar i\u00e7in m\u00fckemmel bir temel sa\u011flar.<\/li>\n<\/ul>\n<h3>Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu<\/h3>\n<p>Rocky Linux 9, Red Hat Enterprise Linux (RHEL) tabanl\u0131, kurumsal d\u00fczeyde bir i\u015fletim sistemidir. Bu b\u00f6l\u00fcmde, Rocky Linux 9 \u00fczerinde PostgreSQL&#8217;in resmi deposunu kullanarak nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak iyi bir uygulamad\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve yaz\u0131l\u0131m \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">sudo dnf update -y\nsudo dnf upgrade -y<\/code><\/pre>\n<h4>PostgreSQL Repositorisini Ekleme<\/h4>\n<p>Rocky Linux&#8217;un varsay\u0131lan depolar\u0131nda genellikle PostgreSQL&#8217;in daha eski s\u00fcr\u00fcmleri bulunur. En g\u00fcncel ve desteklenen s\u00fcr\u00fcm\u00fc kurmak i\u00e7in PostgreSQL projesinin resmi deposunu eklemek en iyi yakla\u015f\u0131md\u0131r. Bu rehberde, PostgreSQL 15 s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z. Farkl\u0131 bir s\u00fcr\u00fcm kurmak isterseniz (\u00f6rne\u011fin 14 veya 16), komuttaki s\u00fcr\u00fcm numaras\u0131n\u0131 de\u011fi\u015ftirmeniz yeterlidir.<\/p>\n<p>\u0130lk olarak, PostgreSQL deposunu sisteme eklemek i\u00e7in <code>dnf<\/code> mod\u00fcl\u00fcn\u00fc kullanaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-9-x86_64\/pgdg-redhat-repo-latest.noarch.rpm<\/code><\/pre>\n<p>Bu komut, PostgreSQL YUM deposu yap\u0131land\u0131rma dosyas\u0131n\u0131 sisteminize ekleyecektir. Depo eklendikten sonra, <code>dnf<\/code> paket y\u00f6neticisinin yeni depoyu tan\u0131mas\u0131 i\u00e7in DNF \u00f6nbelle\u011fini temizlemek faydal\u0131 olabilir:<\/p>\n<pre><code class=\"language-bash\">sudo dnf clean all<\/code><\/pre>\n<h4>PostgreSQL Kurulumu<\/h4>\n<p>Art\u0131k PostgreSQL deposu etkin oldu\u011funa g\u00f6re, PostgreSQL sunucusunu ve istemci ara\u00e7lar\u0131n\u0131 kurabiliriz. PostgreSQL&#8217;in farkl\u0131 s\u00fcr\u00fcmleri ayn\u0131 anda kurulabilir, ancak her bir s\u00fcr\u00fcm i\u00e7in ayr\u0131 bir mod\u00fcl etkinle\u015ftirmeniz gerekir. Rocky Linux 9&#8217;da, <code>dnf module<\/code> komutu ile bunu y\u00f6netiriz. \u00d6ncelikle mevcut PostgreSQL mod\u00fcllerini listeleyelim:<\/p>\n<pre><code class=\"language-bash\">sudo dnf module list postgresql<\/code><\/pre>\n<p>Bu komut, varsay\u0131lan olarak gelen ve PostgreSQL deposundan gelen mod\u00fclleri g\u00f6sterecektir. Varsay\u0131lan mod\u00fcl\u00fc devre d\u0131\u015f\u0131 b\u0131rak\u0131p, istedi\u011fimiz s\u00fcr\u00fcm olan PostgreSQL 15&#8217;i etkinle\u015ftirece\u011fiz:<\/p>\n<pre><code class=\"language-bash\">sudo dnf -qy module disable postgresql\nsudo dnf module enable postgresql:15<\/code><\/pre>\n<p>\u015eimdi PostgreSQL sunucusunu ve ilgili paketleri kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install -y postgresql postgresql-server postgresql-contrib<\/code><\/pre>\n<ul>\n<li><code>postgresql<\/code>: PostgreSQL istemci programlar\u0131n\u0131 ve k\u00fct\u00fcphanelerini i\u00e7erir.<\/li>\n<li><code>postgresql-server<\/code>: PostgreSQL veritaban\u0131 sunucusunu i\u00e7erir.<\/li>\n<li><code>postgresql-contrib<\/code>: PostgreSQL&#8217;in ek yard\u0131mc\u0131 programlar\u0131n\u0131 ve mod\u00fcllerini i\u00e7erir (\u00f6rne\u011fin, <code>pg_buffercache<\/code>, <code>pg_stat_statements<\/code>).<\/li>\n<\/ul>\n<h4>PostgreSQL Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, veritaban\u0131 k\u00fcmesini ba\u015flatman\u0131z ve PostgreSQL servisini etkinle\u015ftirmeniz gerekir. Veritaban\u0131 k\u00fcmesini ba\u015flatmak, veritaban\u0131 dosyalar\u0131n\u0131n ve dizin yap\u0131s\u0131n\u0131n olu\u015fturulmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo \/usr\/pgsql-15\/bin\/postgresql-15-setup initdb<\/code><\/pre>\n<p>Bu komut, PostgreSQL i\u00e7in gerekli veri dizinlerini ve varsay\u0131lan bir veritaban\u0131 k\u00fcmesini olu\u015fturacakt\u0131r. \u0130\u015flem tamamland\u0131ktan sonra, PostgreSQL servisini ba\u015flatabilir ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start postgresql-15\nsudo systemctl enable postgresql-15<\/code><\/pre>\n<p>Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status postgresql-15<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>Firewall Ayarlar\u0131<\/h4>\n<p>PostgreSQL sunucusuna d\u0131\u015far\u0131dan eri\u015fmek istiyorsan\u0131z (\u00f6rne\u011fin, ba\u015fka bir sunucudan veya yerel makinenizden bir y\u00f6netim arac\u0131yla), Rocky Linux&#8217;un g\u00fcvenlik duvar\u0131nda (firewalld) PostgreSQL i\u00e7in varsay\u0131lan ba\u011flant\u0131 noktas\u0131 olan 5432&#8217;yi a\u00e7man\u0131z gerekir. E\u011fer sadece yerel makineden eri\u015fim sa\u011flayacaksan\u0131z bu ad\u0131m\u0131 atlayabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --add-service=postgresql --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu komutlar, PostgreSQL servisi i\u00e7in varsay\u0131lan port olan 5432&#8217;yi kal\u0131c\u0131 olarak a\u00e7ar ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 yeniden y\u00fckler.<\/p>\n<h3>PostgreSQL \u0130lk Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>PostgreSQL kurulduktan sonra, ilk kullan\u0131m i\u00e7in baz\u0131 temel yap\u0131land\u0131rmalar yapmam\u0131z gerekir. Bu, varsay\u0131lan kullan\u0131c\u0131 i\u00e7in \u015fifre belirlemeyi ve yeni veritabanlar\u0131 ile kullan\u0131c\u0131lar olu\u015fturmay\u0131 i\u00e7erir.<\/p>\n<h4>Varsay\u0131lan Kullan\u0131c\u0131 ve Veritaban\u0131<\/h4>\n<p>PostgreSQL, kurulumla birlikte otomatik olarak <code>postgres<\/code> ad\u0131nda bir s\u00fcper kullan\u0131c\u0131 ve <code>postgres<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturur. Bu kullan\u0131c\u0131, Linux sistemindeki <code>postgres<\/code> kullan\u0131c\u0131s\u0131 ile ili\u015fkilidir. Bu nedenle, veritaban\u0131na eri\u015fmek i\u00e7in genellikle \u00f6nce sistemdeki <code>postgres<\/code> kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres<\/code><\/pre>\n<p>Bu komutla <code>postgres<\/code> sistem kullan\u0131c\u0131s\u0131na ge\u00e7tikten sonra, <code>psql<\/code> komutu ile PostgreSQL komut sat\u0131r\u0131 aray\u00fcz\u00fcne (shell) eri\u015febilirsiniz:<\/p>\n<pre><code class=\"language-bash\">psql<\/code><\/pre>\n<p>\u015eimdi PostgreSQL shell&#8217;indesiniz. \u00c7\u0131kmak i\u00e7in <code>\\q<\/code> yaz\u0131p Enter&#8217;a basabilirsiniz.<\/p>\n<h4>PostgreSQL Kullan\u0131c\u0131s\u0131 \u0130\u00e7in \u015eifre Belirleme<\/h4>\n<p>G\u00fcvenlik nedeniyle, <code>postgres<\/code> s\u00fcper kullan\u0131c\u0131s\u0131 i\u00e7in bir \u015fifre belirlemek \u00f6nemlidir. Bu, uzaktan ba\u011flant\u0131larda veya di\u011fer uygulamalarda bu kullan\u0131c\u0131y\u0131 kullan\u0131rken kimlik do\u011frulamas\u0131n\u0131 sa\u011flar.<\/p>\n<p>PostgreSQL shell&#8217;inde iken:<\/p>\n<pre><code class=\"language-sql\">ALTER USER postgres WITH PASSWORD 'guclu_sifreniz';<\/code><\/pre>\n<p><code>'guclu_sifreniz'<\/code> yerine kendi g\u00fc\u00e7l\u00fc \u015fifrenizi yazmay\u0131 unutmay\u0131n. \u015eifreyi belirledikten sonra <code>\\q<\/code> yazarak psql&#8217;den \u00e7\u0131kabilirsiniz. Ard\u0131ndan <code>exit<\/code> yazarak <code>postgres<\/code> sistem kullan\u0131c\u0131s\u0131ndan kendi kullan\u0131c\u0131n\u0131za geri d\u00f6nebilirsiniz.<\/p>\n<h4>Yeni Bir Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Uygulamalar\u0131n\u0131z i\u00e7in genellikle <code>postgres<\/code> s\u00fcper kullan\u0131c\u0131s\u0131n\u0131 kullanmak yerine, daha az yetkiye sahip \u00f6zel bir veritaban\u0131 kullan\u0131c\u0131s\u0131 ve bu kullan\u0131c\u0131ya ait bir veritaban\u0131 olu\u015fturmak iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r.<\/p>\n<h5>Yeni Bir Kullan\u0131c\u0131 Olu\u015fturma<\/h5>\n<p>Yine <code>postgres<\/code> sistem kullan\u0131c\u0131s\u0131na ge\u00e7ip <code>psql<\/code>&#8216;e ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres\npsql<\/code><\/pre>\n<p>\u015eimdi yeni bir kullan\u0131c\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, <code>uygulama_kullanicisi<\/code> ad\u0131nda bir kullan\u0131c\u0131:<\/p>\n<pre><code class=\"language-sql\">CREATE USER uygulama_kullanicisi WITH PASSWORD 'uygulama_sifresi';<\/code><\/pre>\n<p><code>'uygulama_sifresi'<\/code> yerine kendi g\u00fc\u00e7l\u00fc \u015fifrenizi belirleyin. Bu kullan\u0131c\u0131ya veritaban\u0131 olu\u015fturma yetkisi vermek isterseniz:<\/p>\n<pre><code class=\"language-sql\">ALTER USER uygulama_kullanicisi CREATEDB;<\/code><\/pre>\n<h5>Yeni Bir Veritaban\u0131 Olu\u015fturma<\/h5>\n<p>\u015eimdi bu kullan\u0131c\u0131 i\u00e7in bir veritaban\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, <code>uygulama_db<\/code> ad\u0131nda bir veritaban\u0131:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE uygulama_db OWNER uygulama_kullanicisi;<\/code><\/pre>\n<p>Bu komut, <code>uygulama_db<\/code> veritaban\u0131n\u0131 olu\u015fturur ve bu veritaban\u0131n\u0131n sahibi olarak <code>uygulama_kullanicisi<\/code>&#8216;n\u0131 atar.<\/p>\n<h5>Veritaban\u0131na Kullan\u0131c\u0131 Yetkisi Verme<\/h5>\n<p>E\u011fer veritaban\u0131n\u0131 ba\u015fka bir kullan\u0131c\u0131 olu\u015fturduysa veya <code>OWNER<\/code> belirtmediyseniz, olu\u015fturdu\u011funuz kullan\u0131c\u0131ya veritaban\u0131 \u00fczerinde yetki vermeniz gerekebilir:<\/p>\n<pre><code class=\"language-sql\">GRANT ALL PRIVILEGES ON DATABASE uygulama_db TO uygulama_kullanicisi;<\/code><\/pre>\n<p>Bu komut, <code>uygulama_kullanicisi<\/code>&#8216;na <code>uygulama_db<\/code> veritaban\u0131 \u00fczerinde t\u00fcm yetkileri verir.<\/p>\n<p>\u0130\u015flemleriniz bittikten sonra <code>\\q<\/code> ile psql&#8217;den, <code>exit<\/code> ile de <code>postgres<\/code> kullan\u0131c\u0131s\u0131ndan \u00e7\u0131k\u0131n.<\/p>\n<h3>PostgreSQL Ba\u011flant\u0131 Ayarlar\u0131<\/h3>\n<p>PostgreSQL&#8217;e uzaktan veya belirli bir IP adresinden ba\u011flanabilmek i\u00e7in iki ana yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemeniz gerekir: <code>pg_hba.conf<\/code> ve <code>postgresql.conf<\/code>.<\/p>\n<p>Bu dosyalar genellikle <code>\/var\/lib\/pgsql\/15\/data\/<\/code> dizininde bulunur.<\/p>\n<h4><code>pg_hba.conf<\/code> Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p><code>pg_hba.conf<\/code> (host-based authentication) dosyas\u0131, hangi kullan\u0131c\u0131lar\u0131n hangi veritabanlar\u0131na hangi IP adreslerinden hangi kimlik do\u011frulama y\u00f6ntemiyle ba\u011flanabilece\u011fini belirler. G\u00fcvenlik i\u00e7in \u00e7ok \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/var\/lib\/pgsql\/15\/data\/pg_hba.conf<\/code><\/pre>\n<p>Dosyan\u0131n sonunda veya uygun bir yere a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyebilirsiniz. Bu \u00f6rnek, t\u00fcm veritabanlar\u0131na t\u00fcm kullan\u0131c\u0131lar\u0131n herhangi bir IPv4 adresinden MD5 \u015fifre do\u011frulamas\u0131 ile ba\u011flanmas\u0131na izin verir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, <code>0.0.0.0\/0<\/code> yerine belirli IP adresleri veya a\u011f aral\u0131klar\u0131 belirtmek daha iyidir.<\/p>\n<pre><code class=\"language-ini\"># TYPE  DATABASE        USER            ADDRESS                 METHOD\n\n<h2>IPv4 local connections:<\/h2>\nhost    all             all             127.0.0.1\/32            scram-sha-256\nhost    all             all             0.0.0.0\/0               scram-sha-256<\/code><\/pre>\n<p><code>scram-sha-256<\/code>, PostgreSQL 10 ve sonraki s\u00fcr\u00fcmlerde daha g\u00fcvenli bir \u015fifreleme y\u00f6ntemidir. Eski s\u00fcr\u00fcmler veya uyumluluk gereksinimleri i\u00e7in <code>md5<\/code> de kullanabilirsiniz. Ancak <code>scram-sha-256<\/code> tercih edilmelidir.<\/p>\n<ul>\n<li><code>TYPE<\/code>: Ba\u011flant\u0131 tipi (<code>local<\/code>, <code>host<\/code>, <code>hostssl<\/code>, <code>hostnossl<\/code>). <code>host<\/code>, TCP\/IP ba\u011flant\u0131lar\u0131 i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><code>DATABASE<\/code>: Hangi veritaban\u0131na ba\u011flan\u0131laca\u011f\u0131 (<code>all<\/code>, <code>sameuser<\/code>, <code>samerole<\/code> veya belirli bir veritaban\u0131 ad\u0131).<\/li>\n<li><code>USER<\/code>: Hangi kullan\u0131c\u0131lar\u0131n ba\u011flanabilece\u011fi (<code>all<\/code> veya belirli bir kullan\u0131c\u0131 ad\u0131).<\/li>\n<li><code>ADDRESS<\/code>: Hangi IP adreslerinden veya a\u011flardan ba\u011flant\u0131ya izin verilece\u011fi (<code>127.0.0.1\/32<\/code> yerel makine i\u00e7in, <code>0.0.0.0\/0<\/code> t\u00fcm IP&#8217;ler i\u00e7in, <code>192.168.1.0\/24<\/code> belirli bir a\u011f i\u00e7in).<\/li>\n<li><code>METHOD<\/code>: Kimlik do\u011frulama y\u00f6ntemi (<code>scram-sha-256<\/code>, <code>md5<\/code>, <code>trust<\/code>, <code>ident<\/code>, <code>peer<\/code> vb.).<\/li>\n<\/ul>\n<h4><code>postgresql.conf<\/code> Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p><code>postgresql.conf<\/code> dosyas\u0131, PostgreSQL sunucusunun genel \u00e7al\u0131\u015fma zaman\u0131 parametrelerini i\u00e7erir. Uzaktan ba\u011flant\u0131lara izin vermek i\u00e7in <code>listen_addresses<\/code> parametresini d\u00fczenlemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/var\/lib\/pgsql\/15\/data\/postgresql.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131r\u0131 bulun ve yorum sat\u0131r\u0131ndan \u00e7\u0131kar\u0131p d\u00fczenleyin:<\/p>\n<pre><code class=\"language-ini\">#listen_addresses = 'localhost'         # what IP address(es) to listen on;<\/code><\/pre>\n<p>De\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-ini\">listen_addresses = '*'                  # listen on all IP addresses<\/code><\/pre>\n<p><code>'*'<\/code> de\u011feri, PostgreSQL&#8217;in sunucunun t\u00fcm a\u011f aray\u00fczlerindeki ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar. Daha g\u00fcvenli bir yakla\u015f\u0131m olarak, yaln\u0131zca belirli IP adreslerini veya aray\u00fczleri dinlemesini de sa\u011flayabilirsiniz, \u00f6rne\u011fin: <code>listen_addresses = 'localhost,192.168.1.100'<\/code>.<\/p>\n<h4>De\u011fi\u015fiklikleri Uygulama<\/h4>\n<p>Yap\u0131land\u0131rma dosyalar\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart postgresql-15<\/code><\/pre>\n<h3>PostgreSQL Kullan\u0131m\u0131 ve Temel Komutlar<\/h3>\n<p>PostgreSQL&#8217;e ba\u011fland\u0131ktan sonra, veritaban\u0131 y\u00f6netimi ve veri manip\u00fclasyonu i\u00e7in \u00e7e\u015fitli SQL komutlar\u0131n\u0131 ve <code>psql<\/code> meta komutlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<h4><code>psql<\/code> Komut Sat\u0131r\u0131 Arac\u0131n\u0131 Kullanma<\/h4>\n<p><code>psql<\/code>, PostgreSQL ile etkile\u015fim kurmak i\u00e7in en g\u00fc\u00e7l\u00fc ve yayg\u0131n olarak kullan\u0131lan komut sat\u0131r\u0131 arac\u0131d\u0131r. PostgreSQL kullan\u0131c\u0131s\u0131 olarak ba\u011flanmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres psql<\/code><\/pre>\n<p>Belirli bir veritaban\u0131na, belirli bir kullan\u0131c\u0131 ile ba\u011flanmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">psql -U uygulama_kullanicisi -d uygulama_db -h localhost<\/code><\/pre>\n<p><code>-U<\/code> kullan\u0131c\u0131 ad\u0131, <code>-d<\/code> veritaban\u0131 ad\u0131, <code>-h<\/code> host ad\u0131 anlam\u0131na gelir. \u015eifreniz istenecektir.<\/p>\n<p><code>psql<\/code> i\u00e7inde kullanabilece\u011finiz baz\u0131 meta komutlar (<code>\\<\/code> ile ba\u015flayan komutlar):<\/p>\n<ul>\n<li><code>\\l<\/code> veya <code>\\list<\/code>: Mevcut t\u00fcm veritabanlar\u0131n\u0131 listeler.<\/li>\n<li><code>\\c [veritaban\u0131_ad\u0131]<\/code>: Ba\u015fka bir veritaban\u0131na ba\u011flan\u0131r.<\/li>\n<li><code>\\dt<\/code>: Mevcut veritaban\u0131ndaki tablolar\u0131 listeler.<\/li>\n<li><code>\\d [tablo_ad\u0131]<\/code>: Bir tablonun yap\u0131s\u0131n\u0131 (s\u00fctunlar, tipler, indeksler) g\u00f6sterir.<\/li>\n<li><code>\\du<\/code>: Mevcut t\u00fcm kullan\u0131c\u0131lar\u0131 (rolleri) listeler.<\/li>\n<li><code>\\dn<\/code>: \u015eemalar\u0131 listeler.<\/li>\n<li><code>\\q<\/code>: psql&#8217;den \u00e7\u0131kar.<\/li>\n<\/ul>\n<h4>Veritaban\u0131 ve Tablo Y\u00f6netimi<\/h4>\n<h5>Veritabanlar\u0131n\u0131 Listeleme<\/h5>\n<pre><code class=\"language-sql\">\\l<\/code><\/pre>\n<h5>Tablolar\u0131 Listeleme<\/h5>\n<p>\u00d6nce bir veritaban\u0131na ba\u011flan\u0131n (\u00f6rne\u011fin <code>uygulama_db<\/code>):<\/p>\n<pre><code class=\"language-sql\">\\c uygulama_db\n\\dt<\/code><\/pre>\n<h5>Yeni Bir Tablo Olu\u015fturma<\/h5>\n<p>\u00d6rne\u011fin, <code>urunler<\/code> ad\u0131nda bir tablo olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE urunler (\n    id SERIAL PRIMARY KEY,\n    urun_adi VARCHAR(100) NOT NULL,\n    fiyat DECIMAL(10, 2) NOT NULL,\n    stok_miktari INTEGER DEFAULT 0\n);<\/code><\/pre>\n<ul>\n<li><code>SERIAL PRIMARY KEY<\/code>: Otomatik artan bir tam say\u0131 birincil anahtar olu\u015fturur.<\/li>\n<li><code>VARCHAR(100) NOT NULL<\/code>: 100 karakter uzunlu\u011funda metin alan\u0131, bo\u015f olamaz.<\/li>\n<li><code>DECIMAL(10, 2) NOT NULL<\/code>: Toplam 10 basamak, virg\u00fclden sonra 2 basamakl\u0131 ondal\u0131k say\u0131, bo\u015f olamaz.<\/li>\n<li><code>INTEGER DEFAULT 0<\/code>: Tam say\u0131, varsay\u0131lan de\u011feri 0.<\/li>\n<\/ul>\n<h5>Veri Ekleme<\/h5>\n<pre><code class=\"language-sql\">INSERT INTO urunler (urun_adi, fiyat, stok_miktari) VALUES\n('Laptop', 1200.50, 50),\n('Mouse', 25.00, 200),\n('Klavye', 75.99, 150);<\/code><\/pre>\n<h5>Veri Sorgulama<\/h5>\n<pre><code class=\"language-sql\">SELECT * FROM urunler;\nSELECT urun_adi, fiyat FROM urunler WHERE stok_miktari > 100;<\/code><\/pre>\n<h5>Veri G\u00fcncelleme<\/h5>\n<pre><code class=\"language-sql\">UPDATE urunler SET fiyat = 1250.00 WHERE urun_adi = 'Laptop';<\/code><\/pre>\n<h5>Veri Silme<\/h5>\n<pre><code class=\"language-sql\">DELETE FROM urunler WHERE urun_adi = 'Mouse';<\/code><\/pre>\n<h5>Tablo Silme<\/h5>\n<pre><code class=\"language-sql\">DROP TABLE urunler;<\/code><\/pre>\n<h5>Veritaban\u0131 Silme<\/h5>\n<p>Bir veritaban\u0131n\u0131 silmek i\u00e7in, o veritaban\u0131na ba\u011fl\u0131 olmaman\u0131z gerekir. Bu y\u00fczden <code>postgres<\/code> veritaban\u0131na ge\u00e7ip i\u015flemi yap\u0131n:<\/p>\n<pre><code class=\"language-sql\">\\c postgres\nDROP DATABASE uygulama_db;<\/code><\/pre>\n<h3>PostgreSQL Y\u00f6netim Ara\u00e7lar\u0131<\/h3>\n<p>Komut sat\u0131r\u0131, g\u00fc\u00e7l\u00fc olsa da, baz\u0131 kullan\u0131c\u0131lar i\u00e7in g\u00f6rsel aray\u00fczler daha kolay ve verimli olabilir. PostgreSQL i\u00e7in pop\u00fcler y\u00f6netim ara\u00e7lar\u0131 \u015funlard\u0131r:<\/p>\n<h4>pgAdmin 4<\/h4>\n<p>pgAdmin 4, PostgreSQL i\u00e7in resmi ve en pop\u00fcler a\u00e7\u0131k kaynakl\u0131 grafiksel y\u00f6netim ve geli\u015ftirme arac\u0131d\u0131r. Web tabanl\u0131 bir aray\u00fcz sunar ve veritaban\u0131 y\u00f6netimi, SQL sorgular\u0131 \u00e7al\u0131\u015ft\u0131rma, veri g\u00f6rselle\u015ftirme ve sunucu izleme gibi bir\u00e7ok \u00f6zelli\u011fi bar\u0131nd\u0131r\u0131r. Rocky Linux \u00fczerine kurulumu, genellikle bir Python sanal ortam\u0131nda veya bir Docker kapsay\u0131c\u0131s\u0131 i\u00e7inde yap\u0131l\u0131r ve bir web sunucusu (Apache veya Nginx) ile entegre edilir. Kurulum ad\u0131mlar\u0131 bu makalenin kapsam\u0131n\u0131 a\u015fsa da, resmi pgAdmin belgeleri detayl\u0131 rehberler sunmaktad\u0131r.<\/p>\n<h4>DBeaver<\/h4>\n<p>DBeaver, PostgreSQL dahil olmak \u00fczere bir\u00e7ok farkl\u0131 veritaban\u0131 i\u00e7in evrensel bir veritaban\u0131 istemcisidir. Java tabanl\u0131d\u0131r ve platformlar aras\u0131 \u00e7al\u0131\u015fabilir. Zengin \u00f6zellik setine sahiptir, SQL d\u00fczenleyici, veri g\u00f6rselle\u015ftirme, \u015fema kar\u015f\u0131la\u015ft\u0131rma, veri aktar\u0131m\u0131 gibi i\u015flevler sunar. Kurulumu genellikle bir RPM paketi veya do\u011frudan indirilebilir bir JAR dosyas\u0131 ile yap\u0131l\u0131r.<\/p>\n<h3>Yedekleme ve Geri Y\u00fckleme<\/h3>\n<p>Veri yedekleme, herhangi bir veritaban\u0131 y\u00f6netim stratejisinin kritik bir par\u00e7as\u0131d\u0131r. PostgreSQL, yedekleme ve geri y\u00fckleme i\u00e7in g\u00fc\u00e7l\u00fc komut sat\u0131r\u0131 ara\u00e7lar\u0131 sunar.<\/p>\n<h4>Veritaban\u0131 Yedekleme (<code>pg_dump<\/code>)<\/h4>\n<p><code>pg_dump<\/code> arac\u0131, bir PostgreSQL veritaban\u0131n\u0131 SQL komutlar\u0131 veya ar\u015fiv format\u0131nda yedeklemek i\u00e7in kullan\u0131l\u0131r. Genellikle <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.<\/p>\n<p>T\u00fcm veritaban\u0131n\u0131 SQL format\u0131nda yedekleme:<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres pg_dump uygulama_db > \/yedekler\/uygulama_db_yedek.sql<\/code><\/pre>\n<p>\u00d6zel bir kullan\u0131c\u0131 ile yedekleme (\u015fifre sorar):<\/p>\n<pre><code class=\"language-bash\">pg_dump -U uygulama_kullanicisi -d uygulama_db -h localhost > \/yedekler\/uygulama_db_yedek.sql<\/code><\/pre>\n<p>S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f ar\u015fiv format\u0131nda yedekleme (daha verimli ve <code>pg_restore<\/code> ile kullan\u0131labilir):<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres pg_dump -Fc uygulama_db > \/yedekler\/uygulama_db_yedek.dump<\/code><\/pre>\n<p>Yedekleme dosyalar\u0131n\u0131 saklamak i\u00e7in <code>\/yedekler<\/code> gibi bir dizinin \u00f6nceden olu\u015fturulmu\u015f ve uygun izinlere sahip oldu\u011fundan emin olun.<\/p>\n<h4>Veritaban\u0131 Geri Y\u00fckleme (<code>psql<\/code> veya <code>pg_restore<\/code>)<\/h4>\n<p>Yedeklenen veritaban\u0131n\u0131 geri y\u00fcklemek i\u00e7in, \u00f6nce bo\u015f bir veritaban\u0131 olu\u015fturman\u0131z ve ard\u0131ndan yedek dosyas\u0131n\u0131 bu veritaban\u0131na y\u00fcklemeniz gerekir.<\/p>\n<p>SQL format\u0131ndaki yedek dosyay\u0131 geri y\u00fckleme:<\/p>\n<pre><code class=\"language-bash\"># Bo\u015f bir veritaban\u0131 olu\u015fturun\nsudo -i -u postgres psql -c \"CREATE DATABASE yeni_uygulama_db OWNER uygulama_kullanicisi;\"\n\n<h2>Yedek dosyas\u0131n\u0131 geri y\u00fckleyin<\/h2>\nsudo -i -u postgres psql -d yeni_uygulama_db < \/yedekler\/uygulama_db_yedek.sql<\/code><\/pre>\n<p>Ar\u015fiv format\u0131ndaki yedek dosyay\u0131 geri y\u00fckleme (<code>pg_restore<\/code> ile):<\/p>\n<pre><code class=\"language-bash\"># Bo\u015f bir veritaban\u0131 olu\u015fturun (pg_restore kendisi de olu\u015fturabilir, ama manuel olu\u015fturmak daha kontroll\u00fcd\u00fcr)\nsudo -i -u postgres psql -c \"CREATE DATABASE yeni_uygulama_db OWNER uygulama_kullanicisi;\"\n\n<h2>Yedek dosyas\u0131n\u0131 geri y\u00fckleyin<\/h2>\nsudo -i -u postgres pg_restore -d yeni_uygulama_db \/yedekler\/uygulama_db_yedek.dump<\/code><\/pre>\n<p><code>pg_restore<\/code>, ar\u015fiv format\u0131ndaki yedeklerden belirli tablolar\u0131 veya \u015femalar\u0131 se\u00e7erek geri y\u00fckleme gibi daha geli\u015fmi\u015f se\u00e7enekler sunar.<\/p>\n<h3>Performans Optimizasyonu \u0130pu\u00e7lar\u0131<\/h3>\n<p>PostgreSQL'in performans\u0131n\u0131 art\u0131rmak, uygulaman\u0131z\u0131n h\u0131z\u0131n\u0131 ve yan\u0131t s\u00fcresini do\u011frudan etkileyebilir. \u0130\u015fte baz\u0131 temel optimizasyon ipu\u00e7lar\u0131:<\/p>\n<ul>\n<li><strong><code>VACUUM<\/code> ve <code>ANALYZE<\/code>:<\/strong> PostgreSQL, MVCC (Multi-Version Concurrency Control) kulland\u0131\u011f\u0131 i\u00e7in, g\u00fcncellenen veya silinen sat\u0131rlar\u0131n eski s\u00fcr\u00fcmleri (dead tuples) diskte yer kaplamaya devam eder. <code>VACUUM<\/code> komutu bu \"\u00f6l\u00fc\" sat\u0131rlar\u0131 temizler ve alan\u0131 yeniden kullan\u0131labilir hale getirir. <code>ANALYZE<\/code> ise sorgu planlay\u0131c\u0131s\u0131n\u0131n daha iyi planlar olu\u015fturabilmesi i\u00e7in tablo istatistiklerini g\u00fcnceller. Genellikle <code>VACUUM FULL<\/code> yerine d\u00fczenli <code>VACUUM<\/code> ve <code>ANALYZE<\/code> veya otomatik vakum (autovacuum) ayarlar\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131lmas\u0131 tercih edilir.<\/li>\n<li><strong>\u0130ndeksler:<\/strong> S\u0131k\u00e7a sorgulanan s\u00fctunlara uygun indeksler eklemek, sorgu performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. <code>CREATE INDEX<\/code> komutu ile indeksler olu\u015fturulur. Ancak \u00e7ok fazla indeksin yazma (INSERT\/UPDATE\/DELETE) i\u015flemlerini yava\u015flatabilece\u011fini unutmay\u0131n.<\/li>\n<li><strong>Sorgu Optimizasyonu:<\/strong> Yava\u015f \u00e7al\u0131\u015fan sorgular\u0131 belirlemek i\u00e7in <code>EXPLAIN ANALYZE<\/code> komutunu kullan\u0131n. Bu komut, sorgunun nas\u0131l y\u00fcr\u00fct\u00fcld\u00fc\u011f\u00fcn\u00fc ve hangi ad\u0131mlar\u0131n ne kadar zaman ald\u0131\u011f\u0131n\u0131 g\u00f6sterir. Sorgular\u0131 daha verimli hale getirmek i\u00e7in JOIN tiplerini, WHERE ko\u015fullar\u0131n\u0131 ve ORDER BY ifadelerini optimize edin.<\/li>\n<li><strong>Yap\u0131land\u0131rma Ayarlar\u0131 (<code>postgresql.conf<\/code>):<\/strong> PostgreSQL'in performans\u0131, <code>postgresql.conf<\/code> dosyas\u0131ndaki parametrelerle ayarlanabilir. \u00d6zellikle a\u015fa\u011f\u0131daki parametreler performans\u0131 etkiler:\n<ul>\n<li><code>shared_buffers<\/code>: PostgreSQL'in payla\u015f\u0131ml\u0131 bellek alan\u0131. Genellikle toplam RAM'in %25'i civar\u0131nda ayarlan\u0131r.<\/li>\n<li><code>work_mem<\/code>: Sorgular\u0131n s\u0131ralama ve hash i\u015flemleri i\u00e7in kulland\u0131\u011f\u0131 bellek miktar\u0131.<\/li>\n<li><code>maintenance_work_mem<\/code>: VACUUM, CREATE INDEX gibi bak\u0131m i\u015flemleri i\u00e7in kullan\u0131lan bellek.<\/li>\n<li><code>wal_buffers<\/code>: WAL (Write-Ahead Log) i\u00e7in kullan\u0131lan bellek.<\/li>\n<li><code>effective_cache_size<\/code>: \u0130\u015fletim sistemi sayfa \u00f6nbelle\u011fi ve PostgreSQL'in kendi \u00f6nbelle\u011fi dahil olmak \u00fczere diskin ne kadar\u0131n\u0131n \u00f6nbelle\u011fe al\u0131nd\u0131\u011f\u0131n\u0131 tahmin eder.<\/li>\n<li><code>max_connections<\/code>: E\u015fzamanl\u0131 ba\u011flant\u0131 say\u0131s\u0131.<\/li>\n<\/ul>\n<p>        Bu ayarlar\u0131n sunucunuzun donan\u0131m \u00f6zelliklerine ve i\u015f y\u00fck\u00fcn\u00fcze g\u00f6re dikkatlice ayarlanmas\u0131 gerekir.<\/li>\n<\/ul>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Rocky Linux 9 \u00fczerinde PostgreSQL 15'in kurulumundan temel yap\u0131land\u0131rmas\u0131na, veritaban\u0131 ve kullan\u0131c\u0131 y\u00f6netiminden yedekleme ve geri y\u00fckleme i\u015flemlerine kadar bir\u00e7ok \u00f6nemli konuyu ele ald\u0131k. PostgreSQL, g\u00fc\u00e7l\u00fc \u00f6zellikleri, esnekli\u011fi ve a\u00e7\u0131k kaynak yap\u0131s\u0131yla modern uygulamalar i\u00e7in m\u00fckemmel bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Do\u011fru kurulum ve yap\u0131land\u0131rma ile Rocky Linux 9 \u00fczerinde kararl\u0131 ve y\u00fcksek performansl\u0131 bir PostgreSQL ortam\u0131 olu\u015fturabilirsiniz. Unutmay\u0131n ki, veritaban\u0131 y\u00f6netimi s\u00fcrekli \u00f6\u011frenme ve optimizasyon gerektiren bir aland\u0131r. Kurulumdan sonra, PostgreSQL'in geli\u015fmi\u015f \u00f6zelliklerini ve performans ayarlama se\u00e7eneklerini ke\u015ffetmeye devam etmeniz, veritaban\u0131 sisteminizin potansiyelini tam olarak kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\nG\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, g\u00fcvenilir, \u00f6l\u00e7eklenebili","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[241],"tags":[],"class_list":{"0":"post-37454","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, g\u00fcvenilir, \u00f6l\u00e7eklenebili\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-05T11:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2026-01-05T11:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"},\"wordCount\":2821,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\",\"name\":\"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-05T11:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber","og_description":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, g\u00fcvenilir, \u00f6l\u00e7eklenebili","og_url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-05T11:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber","datePublished":"2026-01-05T11:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"},"wordCount":2821,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/","name":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-05T11:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-postgresql-kurulumu-ve-kullanimi-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rocky Linux 9 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37454"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37454\/revisions"}],"predecessor-version":[{"id":37455,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37454\/revisions\/37455"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}