{"id":42333,"date":"2026-06-06T08:00:51","date_gmt":"2026-06-06T05:00:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=42333"},"modified":"2026-06-06T08:01:23","modified_gmt":"2026-06-06T05:01:23","slug":"ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/","title":{"rendered":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131"},"content":{"rendered":"<h2>Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, g\u00fc\u00e7l\u00fc ve g\u00fcvenilir bir veritaban\u0131 y\u00f6netim sistemine sahip olmak, hemen hemen her yaz\u0131l\u0131m projesi i\u00e7in kritik \u00f6neme sahiptir. PostgreSQL, a\u00e7\u0131k kaynakl\u0131 ve nesne-ili\u015fkisel bir veritaban\u0131 y\u00f6netim sistemi olarak, performans\u0131, sa\u011flaml\u0131\u011f\u0131, esnekli\u011fi ve geli\u015fmi\u015f \u00f6zellikleriyle d\u00fcnya genelinde milyonlarca geli\u015ftirici ve kurulu\u015f taraf\u0131ndan tercih edilmektedir. Bu makalede, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olan Ubuntu 12.04 (Precise Pangolin) i\u015fletim sistemi \u00fczerine PostgreSQL&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131 ve temel d\u00fczeyde nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz. Ubuntu 12.04 her ne kadar eski bir s\u00fcr\u00fcm olsa da, bu makale, eski sistemlerde dahi PostgreSQL&#8217;in nas\u0131l y\u00f6netilece\u011fine dair temel bir anlay\u0131\u015f sa\u011flamay\u0131 hedeflemektedir.<\/p>\n<h3>PostgreSQL Nedir ve Neden Tercih Edilir?<\/h3>\n<p>PostgreSQL, 30 y\u0131l\u0131 a\u015fk\u0131n bir s\u00fcredir aktif olarak geli\u015ftirilen, g\u00fc\u00e7l\u00fc ve olgun bir veritaban\u0131 sistemidir. SQL standard\u0131na tam uyumlulu\u011fu, geni\u015fletilebilirli\u011fi, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcne verdi\u011fi \u00f6nem ve karma\u015f\u0131k sorgular\u0131 i\u015fleme yetene\u011fi ile \u00f6ne \u00e7\u0131kar. ACID (Atomicity, Consistency, Isolation, Durability) prensiplerine tam uyumlu olmas\u0131, i\u015flem g\u00fcvenilirli\u011fini garanti eder. Ayr\u0131ca, JSON, XML, HSTORE gibi \u00e7e\u015fitli veri tiplerini desteklemesi ve co\u011frafi veri (PostGIS uzant\u0131s\u0131 ile) i\u015fleme yetenekleri sayesinde modern uygulamalar\u0131n ihtiya\u00e7lar\u0131na cevap verebilmektedir. A\u00e7\u0131k kaynak lisans\u0131 sayesinde lisans maliyeti olmamas\u0131, i\u015fletmeler i\u00e7in cazip bir se\u00e7enek haline getirir.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu makaledeki ad\u0131mlar\u0131 uygulayabilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip olman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 12.04 LTS \u0130\u015fletim Sistemi:<\/strong> \u00c7al\u0131\u015f\u0131r durumda bir Ubuntu 12.04 sunucusu veya masa\u00fcst\u00fc kurulumu.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Kurulum ve yap\u0131land\u0131rma i\u015flemleri i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> PostgreSQL paketlerini indirmek i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131.<\/p>\n<p>Ubuntu 12.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda genellikle PostgreSQL 9.1 s\u00fcr\u00fcm\u00fc bulunur. Bu makaledeki komutlar ve yap\u0131land\u0131rma \u00f6rnekleri bu s\u00fcr\u00fcme g\u00f6re verilmi\u015ftir.<\/p>\n<h3>PostgreSQL Kurulumu<\/h3>\n<p>PostgreSQL&#8217;i Ubuntu 12.04 \u00fczerine kurmak olduk\u00e7a basittir. Ubuntu&#8217;nun <code>apt<\/code> paket y\u00f6netim sistemi sayesinde gerekli t\u00fcm paketleri kolayca y\u00fckleyebiliriz.<\/p>\n<h4>Ad\u0131m 1: Paket Listelerini G\u00fcncelleme<\/h4>\n<p>\u00d6ncelikle, sisteminizdeki paket listelerini g\u00fcncelleyerek en son paket bilgilerini edindi\u011finizden emin olun. Bu, herhangi bir kurulum hatas\u0131n\u0131 \u00f6nlemek i\u00e7in iyi bir uygulamad\u0131r.<\/p>\n<p>Komut:<br \/>\n  sudo apt-get update<\/p>\n<h4>Ad\u0131m 2: PostgreSQL Server ve Client Paketlerini Kurma<\/h4>\n<p>Paket listeleri g\u00fcncellendikten sonra, PostgreSQL sunucusunu ve istemci ara\u00e7lar\u0131n\u0131 kurabiliriz. <code>postgresql<\/code> paketi veritaban\u0131 sunucusunu i\u00e7erirken, <code>postgresql-contrib<\/code> paketi ek ara\u00e7lar ve i\u015flevsellik sa\u011flar (\u00f6rne\u011fin, <code>pg_stat_statements<\/code> gibi uzant\u0131lar).<\/p>\n<p>Komut:<br \/>\n  sudo apt-get install postgresql postgresql-contrib<\/p>\n<p>Kurulum i\u015flemi s\u0131ras\u0131nda, sistem sizden onay isteyebilir. <code>E<\/code> veya <code>Y<\/code> tu\u015funa basarak devam edin. Kurulum tamamland\u0131\u011f\u0131nda, PostgreSQL servisi otomatik olarak ba\u015flayacak ve sistem ba\u015flang\u0131c\u0131nda da \u00e7al\u0131\u015facak \u015fekilde ayarlanacakt\u0131r.<\/p>\n<h4>Ad\u0131m 3: Kurulumu Do\u011frulama<\/h4>\n<p>PostgreSQL servisinin ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<p>Komut:<br \/>\n  sudo service postgresql status<\/p>\n<p>E\u011fer servis \u00e7al\u0131\u015f\u0131yorsa, \u00e7\u0131kt\u0131da genellikle &#8220;running&#8221; veya benzeri bir ifade g\u00f6receksiniz. \u00d6rne\u011fin:<\/p>\n<p>\u00d6rnek \u00c7\u0131kt\u0131:<br \/>\n  9.1\/main (port 5432): online<\/p>\n<p>Bu \u00e7\u0131kt\u0131, PostgreSQL sunucusunun 5432 numaral\u0131 varsay\u0131lan portta \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3>Temel Yap\u0131land\u0131rma<\/h3>\n<p>PostgreSQL kurulumundan sonra, baz\u0131 temel yap\u0131land\u0131rmalar yapman\u0131z gerekebilir. \u00d6zellikle, varsay\u0131lan <code>postgres<\/code> kullan\u0131c\u0131s\u0131n\u0131n \u015fifresini ayarlamak ve yeni veritaban\u0131 kullan\u0131c\u0131lar\u0131\/veritabanlar\u0131 olu\u015fturmak \u00f6nemlidir.<\/p>\n<h4>PostgreSQL Kullan\u0131c\u0131lar\u0131 ve Rolleri<\/h4>\n<p>PostgreSQL, i\u015fletim sistemi kullan\u0131c\u0131lar\u0131ndan ayr\u0131 bir kullan\u0131c\u0131 sistemi kullan\u0131r. Kurulum s\u0131ras\u0131nda, <code>postgres<\/code> ad\u0131nda bir veritaban\u0131 s\u00fcper kullan\u0131c\u0131s\u0131 olu\u015fturulur. Bu kullan\u0131c\u0131, ayn\u0131 zamanda Ubuntu sisteminde de <code>postgres<\/code> ad\u0131nda bir kullan\u0131c\u0131ya kar\u015f\u0131l\u0131k gelir.<\/p>\n<h4>Ad\u0131m 1: <code>postgres<\/code> Kullan\u0131c\u0131s\u0131n\u0131n \u015eifresini Ayarlama<\/h4>\n<p>G\u00fcvenlik amac\u0131yla, <code>postgres<\/code> veritaban\u0131 kullan\u0131c\u0131s\u0131 i\u00e7in bir \u015fifre belirlemeniz \u015fiddetle tavsiye edilir. Bunu yapmak i\u00e7in \u00f6ncelikle <code>postgres<\/code> i\u015fletim sistemi kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapman\u0131z gerekir:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<\/p>\n<p>\u015eimdi, <code>psql<\/code> komut sat\u0131r\u0131 istemcisini kullanarak PostgreSQL&#8217;e ba\u011flan\u0131n:<\/p>\n<p>Komut:<br \/>\n  psql<\/p>\n<p><code>psql<\/code> istemcisine girdikten sonra, <code>postgres<\/code> kullan\u0131c\u0131s\u0131n\u0131n \u015fifresini ayarlamak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<p>Komut:<br \/>\n  \\password postgres<\/p>\n<p>Sistem sizden yeni \u015fifreyi iki kez girmenizi isteyecektir. \u015eifreyi ayarlad\u0131ktan sonra <code>psql<\/code> istemcisinden \u00e7\u0131kmak i\u00e7in <code>\\q<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n.<\/p>\n<p>Komut:<br \/>\n  \\q<\/p>\n<p>Ard\u0131ndan, <code>postgres<\/code> i\u015fletim sistemi kullan\u0131c\u0131s\u0131ndan \u00e7\u0131kmak i\u00e7in <code>exit<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n:<\/p>\n<p>Komut:<br \/>\n  exit<\/p>\n<h4>Ad\u0131m 2: Yeni Bir Veritaban\u0131 Kullan\u0131c\u0131s\u0131 Olu\u015fturma<\/h4>\n<p>Uygulamalar\u0131n\u0131z veya di\u011fer kullan\u0131c\u0131lar i\u00e7in do\u011frudan <code>postgres<\/code> s\u00fcper kullan\u0131c\u0131s\u0131n\u0131 kullanmak yerine, \u00f6zel yetkilere sahip yeni veritaban\u0131 kullan\u0131c\u0131lar\u0131 olu\u015fturmak en iyi g\u00fcvenlik uygulamas\u0131d\u0131r.<\/p>\n<p>\u00d6nceki ad\u0131mda oldu\u011fu gibi, <code>postgres<\/code> i\u015fletim sistemi kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yap\u0131n:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<\/p>\n<p>Ard\u0131zdan, <code>createuser<\/code> komutunu kullanarak yeni bir kullan\u0131c\u0131 olu\u015fturun. \u00d6rne\u011fin, <code>myuser<\/code> ad\u0131nda bir kullan\u0131c\u0131 olu\u015ftural\u0131m:<\/p>\n<p>Komut:<br \/>\n  createuser &#8211;interactive<\/p>\n<p>Bu komut size birka\u00e7 soru soracakt\u0131r:<br \/>\n  Enter name of role to add: myuser<br \/>\n  Shall the new role be a superuser? (y\/n) n<br \/>\n  Shall the new role be allowed to create databases? (y\/n) y<br \/>\n  Shall the new role be allowed to create new roles? (y\/n) n<\/p>\n<p>Bu \u00f6rnekte, <code>myuser<\/code> ad\u0131nda, veritaban\u0131 olu\u015fturma yetkisi olan ancak s\u00fcper kullan\u0131c\u0131 olmayan veya rol olu\u015fturamayan bir kullan\u0131c\u0131 olu\u015fturduk.<br \/>\n<code>myuser<\/code> i\u00e7in bir \u015fifre belirlemek amac\u0131yla <code>psql<\/code>&#8216;e ba\u011flan\u0131n:<\/p>\n<p>Komut:<br \/>\n  psql<\/p>\n<p><code>psql<\/code> i\u00e7inde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<p>Komut:<br \/>\n  ALTER USER myuser WITH ENCRYPTED PASSWORD &#8216;your_secure_password&#8217;;<\/p>\n<p><code>your_secure_password<\/code> yerine kendi g\u00fcvenli \u015fifrenizi yaz\u0131n. \u0130\u015flem tamamland\u0131\u011f\u0131nda <code>\\q<\/code> ile <code>psql<\/code>&#8216;den, <code>exit<\/code> ile <code>postgres<\/code> kullan\u0131c\u0131s\u0131ndan \u00e7\u0131k\u0131n.<\/p>\n<h4>Ad\u0131m 3: Yeni Bir Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>Her uygulaman\u0131n veya projenin genellikle kendi \u00f6zel veritaban\u0131na sahip olmas\u0131 istenir. <code>createdb<\/code> komutunu kullanarak yeni bir veritaban\u0131 olu\u015fturabiliriz. \u00d6rne\u011fin, <code>mydatabase<\/code> ad\u0131nda bir veritaban\u0131 olu\u015ftural\u0131m ve sahibini <code>myuser<\/code> yapal\u0131m:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  createdb -O myuser mydatabase<br \/>\n  exit<\/p>\n<p>Bu komut, <code>mydatabase<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturur ve bu veritaban\u0131n\u0131n sahibini <code>myuser<\/code> olarak atar.<\/p>\n<h3>PostgreSQL&#8217;e Ba\u011flanma<\/h3>\n<p>PostgreSQL&#8217;e ba\u011flanman\u0131n birka\u00e7 yolu vard\u0131r. En yayg\u0131n olan\u0131, komut sat\u0131r\u0131 arac\u0131 <code>psql<\/code>&#8216;dir.<\/p>\n<h4><code>psql<\/code> ile Ba\u011flanma<\/h4>\n<p><code>psql<\/code> arac\u0131, PostgreSQL veritabanlar\u0131yla etkile\u015fim kurmak i\u00e7in g\u00fc\u00e7l\u00fc bir komut sat\u0131r\u0131 istemcisidir.<\/p>\n<p><strong>Varsay\u0131lan Veritaban\u0131na ve Kullan\u0131c\u0131ya Ba\u011flanma:<\/strong><br \/>\nE\u011fer <code>postgres<\/code> i\u015fletim sistemi kullan\u0131c\u0131s\u0131 olarak ba\u011flan\u0131yorsan\u0131z ve <code>postgres<\/code> veritaban\u0131na ba\u011flanmak istiyorsan\u0131z:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  psql<\/p>\n<p><strong>Belirli Bir Veritaban\u0131na ve Kullan\u0131c\u0131ya Ba\u011flanma:<\/strong><br \/>\nDaha \u00f6nce olu\u015fturdu\u011fumuz <code>myuser<\/code> kullan\u0131c\u0131s\u0131 ve <code>mydatabase<\/code> veritaban\u0131na ba\u011flanmak i\u00e7in:<\/p>\n<p>Komut:<br \/>\n  psql -U myuser -d mydatabase<\/p>\n<p>Sistem sizden <code>myuser<\/code> kullan\u0131c\u0131s\u0131n\u0131n \u015fifresini isteyecektir. \u015eifreyi girdikten sonra <code>mydatabase<\/code> veritaban\u0131na ba\u011flanm\u0131\u015f olacaks\u0131n\u0131z.<\/p>\n<p><code>psql<\/code> istemcisi i\u00e7indeyken kullanabilece\u011finiz baz\u0131 temel komutlar:<\/p>\n<p>*   <code>\\l<\/code>: T\u00fcm veritabanlar\u0131n\u0131 listeler.<br \/>\n*   <code>\\dt<\/code>: Mevcut veritaban\u0131ndaki tablolar\u0131 listeler.<br \/>\n*   <code>\\du<\/code>: T\u00fcm veritaban\u0131 kullan\u0131c\u0131lar\u0131n\u0131 (rollerini) listeler.<br \/>\n*   <code>\\c [veritaban\u0131_ad\u0131]<\/code>: Ba\u015fka bir veritaban\u0131na ge\u00e7i\u015f yapar.<br \/>\n*   <code>\\d [tablo_ad\u0131]<\/code>: Bir tablonun yap\u0131s\u0131n\u0131 (s\u00fctunlar\u0131, tipleri vb.) g\u00f6sterir.<br \/>\n*   <code>\\q<\/code>: <code>psql<\/code> istemcisinden \u00e7\u0131kar.<\/p>\n<h3>Veritaban\u0131 \u0130\u015flemleri (CRUD Temelleri)<\/h3>\n<p>Bir veritaban\u0131 olu\u015fturduktan ve ona ba\u011fland\u0131ktan sonra, veritaban\u0131 \u00fczerinde temel CRUD (Create, Read, Update, Delete) i\u015flemlerini ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p><code>myuser<\/code> ve <code>mydatabase<\/code> ile <code>psql<\/code>&#8216;e ba\u011fl\u0131 oldu\u011funuzu varsayal\u0131m:<\/p>\n<p>Komut:<br \/>\n  psql -U myuser -d mydatabase<\/p>\n<h4>Ad\u0131m 1: Tablo Olu\u015fturma (CREATE)<\/h4>\n<p>\u00d6rnek olarak, <code>urunler<\/code> ad\u0131nda basit bir tablo olu\u015ftural\u0131m:<\/p>\n<p>SQL Komutu:<br \/>\n  CREATE TABLE urunler (<br \/>\n      id SERIAL PRIMARY KEY,<br \/>\n      ad VARCHAR(100) NOT NULL,<br \/>\n      fiyat DECIMAL(10, 2) NOT NULL,<br \/>\n      stok INT DEFAULT 0<br \/>\n  );<\/p>\n<p>Bu komut, <code>id<\/code> (otomatik artan birincil anahtar), <code>ad<\/code>, <code>fiyat<\/code> ve <code>stok<\/code> s\u00fctunlar\u0131na sahip bir <code>urunler<\/code> tablosu olu\u015fturur.<\/p>\n<p>Tablonun olu\u015ftu\u011funu <code>\\dt<\/code> komutu ile kontrol edebilirsiniz:<\/p>\n<p>Komut:<br \/>\n  \\dt<\/p>\n<h4>Ad\u0131m 2: Veri Ekleme (INSERT)<\/h4>\n<p><code>urunler<\/code> tablosuna birka\u00e7 kay\u0131t ekleyelim:<\/p>\n<p>SQL Komutu:<br \/>\n  INSERT INTO urunler (ad, fiyat, stok) VALUES<br \/>\n  (&#8216;Laptop&#8217;, 1200.00, 50),<br \/>\n  (&#8216;Klavye&#8217;, 75.50, 150),<br \/>\n  (&#8216;Fare&#8217;, 25.00, 200);<\/p>\n<h4>Ad\u0131m 3: Veri Okuma (SELECT)<\/h4>\n<p>Tablodaki verileri okumak i\u00e7in <code>SELECT<\/code> komutunu kullan\u0131r\u0131z:<\/p>\n<p>T\u00fcm verileri se\u00e7me:<br \/>\nSQL Komutu:<br \/>\n  SELECT * FROM urunler;<\/p>\n<p>\u00d6rnek \u00c7\u0131kt\u0131:<br \/>\n   id |   ad   | fiyat  | stok<br \/>\n  &#8212;-+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8211;+&#8212;&#8212;<br \/>\n    1 | Laptop | 1200.00|   50<br \/>\n    2 | Klavye |  75.50 |  150<br \/>\n    3 | Fare   |  25.00 |  200<br \/>\n  (3 rows)<\/p>\n<p>Belirli bir ko\u015fula g\u00f6re veri se\u00e7me:<br \/>\nSQL Komutu:<br \/>\n  SELECT ad, fiyat FROM urunler WHERE stok > 100;<\/p>\n<p>\u00d6rnek \u00c7\u0131kt\u0131:<br \/>\n    ad   | fiyat<br \/>\n  &#8212;&#8212;-+&#8212;&#8212;-<br \/>\n  Klavye | 75.50<br \/>\n  Fare   | 25.00<br \/>\n  (2 rows)<\/p>\n<h4>Ad\u0131m 4: Veri G\u00fcncelleme (UPDATE)<\/h4>\n<p>Mevcut bir kayd\u0131n verilerini g\u00fcncellemek i\u00e7in <code>UPDATE<\/code> komutunu kullan\u0131r\u0131z:<\/p>\n<p>\u00d6rne\u011fin, &#8220;Laptop&#8221; \u00fcr\u00fcn\u00fcn\u00fcn fiyat\u0131n\u0131 g\u00fcncelleyelim:<br \/>\nSQL Komutu:<br \/>\n  UPDATE urunler SET fiyat = 1150.00 WHERE ad = &#8216;Laptop&#8217;;<\/p>\n<p>G\u00fcncellemenin ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in tekrar <code>SELECT<\/code> yapabilirsiniz:<br \/>\nSQL Komutu:<br \/>\n  SELECT * FROM urunler WHERE ad = &#8216;Laptop&#8217;;<\/p>\n<h4>Ad\u0131m 5: Veri Silme (DELETE)<\/h4>\n<p>Tablodan kay\u0131t silmek i\u00e7in <code>DELETE<\/code> komutunu kullan\u0131r\u0131z:<\/p>\n<p>\u00d6rne\u011fin, sto\u011fu 50&#8217;den az olan t\u00fcm \u00fcr\u00fcnleri silelim (bu \u00f6rnekte Laptop silinecek):<br \/>\nSQL Komutu:<br \/>\n  DELETE FROM urunler WHERE stok < 100;\n\nSilme i\u015flemini do\u011frulamak i\u00e7in t\u00fcm \u00fcr\u00fcnleri tekrar listeleyebilirsiniz:\nSQL Komutu:\n  SELECT * FROM urunler;\n\n\n\n<h3>Kullan\u0131c\u0131 ve Rol Y\u00f6netimi<\/h3>\n<p>PostgreSQL&#8217;de kullan\u0131c\u0131lar asl\u0131nda &#8220;roller&#8221; olarak adland\u0131r\u0131l\u0131r. Bir rol, bir kullan\u0131c\u0131 veya bir grup kullan\u0131c\u0131 olabilir. Rol y\u00f6netimi, veritaban\u0131 g\u00fcvenli\u011fi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>Yeni Rol (Kullan\u0131c\u0131) Olu\u015fturma<\/h4>\n<p>Daha \u00f6nce <code>createuser<\/code> komutunu kullanm\u0131\u015ft\u0131k. <code>psql<\/code> i\u00e7inde de <code>CREATE ROLE<\/code> komutuyla rol olu\u015fturabiliriz:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  psql<\/p>\n<p>SQL Komutu:<br \/>\n  CREATE ROLE yeni_kullanici WITH LOGIN PASSWORD &#8216;sifre123&#8217;;<br \/>\n  CREATE DATABASE yeni_db OWNER yeni_kullanici;<br \/>\n  \\q<br \/>\n  exit<\/p>\n<p>Bu komutlar, <code>yeni_kullanici<\/code> ad\u0131nda \u015fifresi <code>sifre123<\/code> olan bir kullan\u0131c\u0131 olu\u015fturur ve bu kullan\u0131c\u0131n\u0131n sahibi oldu\u011fu <code>yeni_db<\/code> ad\u0131nda bir veritaban\u0131 yarat\u0131r.<\/p>\n<h4>Yetki Verme (GRANT)<\/h4>\n<p>Bir kullan\u0131c\u0131ya belirli bir veritaban\u0131, tablo veya di\u011fer veritaban\u0131 objeleri \u00fczerinde yetki vermek i\u00e7in <code>GRANT<\/code> komutu kullan\u0131l\u0131r.<\/p>\n<p><code>psql<\/code>&#8216;e <code>postgres<\/code> kullan\u0131c\u0131s\u0131 olarak ba\u011fl\u0131yken:<\/p>\n<p>SQL Komutu:<br \/>\n  GRANT ALL PRIVILEGES ON DATABASE mydatabase TO yeni_kullanici;<br \/>\n  GRANT ALL PRIVILEGES ON TABLE urunler TO yeni_kullanici;<\/p>\n<p>Bu komutlar, <code>yeni_kullanici<\/code>&#8216;ya <code>mydatabase<\/code> \u00fczerinde ve <code>urunler<\/code> tablosu \u00fczerinde t\u00fcm yetkileri verir. Belirli yetkiler de verilebilir (\u00f6rne\u011fin, <code>SELECT<\/code>, <code>INSERT<\/code>, <code>UPDATE<\/code>, <code>DELETE<\/code>).<\/p>\n<h4>Yetki Kald\u0131rma (REVOKE)<\/h4>\n<p>Bir kullan\u0131c\u0131dan yetkileri geri almak i\u00e7in <code>REVOKE<\/code> komutu kullan\u0131l\u0131r:<\/p>\n<p>SQL Komutu:<br \/>\n  REVOKE INSERT ON TABLE urunler FROM yeni_kullanici;<\/p>\n<p>Bu komut, <code>yeni_kullanici<\/code>&#8216;n\u0131n <code>urunler<\/code> tablosuna veri ekleme yetkisini geri al\u0131r.<\/p>\n<h4>Rol Silme<\/h4>\n<p>Bir rol\u00fc silmek i\u00e7in \u00f6nce o rol\u00fcn sahip oldu\u011fu t\u00fcm veritabanlar\u0131n\u0131 veya objeleri ba\u015fka bir role aktarman\u0131z veya silmeniz gerekir. Ard\u0131ndan <code>DROP ROLE<\/code> komutunu kullanabilirsiniz:<\/p>\n<p>SQL Komutu:<br \/>\n  DROP ROLE yeni_kullanici;<\/p>\n<h3>G\u00fcvenlik Hususlar\u0131<\/h3>\n<p>PostgreSQL kurulumunuzu g\u00fcvence alt\u0131na almak \u00e7ok \u00f6nemlidir. \u0130\u015fte dikkat etmeniz gereken baz\u0131 temel g\u00fcvenlik noktalar\u0131:<\/p>\n<h4><code>pg_hba.conf<\/code> Yap\u0131land\u0131rmas\u0131<\/h4>\n<p><code>pg_hba.conf<\/code> dosyas\u0131, PostgreSQL&#8217;e kimlerin, hangi veritabanlar\u0131na, hangi kullan\u0131c\u0131larla ve hangi kimlik do\u011frulama y\u00f6ntemiyle ba\u011flanabilece\u011fini belirleyen ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bu dosya genellikle <code>\/etc\/postgresql\/9.1\/main\/pg_hba.conf<\/code> yolunda bulunur.<\/p>\n<p>Dosyay\u0131 d\u00fczenlemek i\u00e7in bir metin d\u00fczenleyici kullan\u0131n:<\/p>\n<p>Komut:<br \/>\n  sudo nano \/etc\/postgresql\/9.1\/main\/pg_hba.conf<\/p>\n<p>Dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi sat\u0131rlar i\u00e7erir:<\/p>\n<p>\u00d6rnek <code>pg_hba.conf<\/code> sat\u0131r\u0131:<br \/>\n  # TYPE  DATABASE        USER            ADDRESS                 METHOD<br \/>\n  local   all             all                                     peer<br \/>\n  host    all             all             127.0.0.1\/32            md5<br \/>\n  host    all             all             ::1\/128                 md5<\/p>\n<p>A\u00e7\u0131klamalar:<br \/>\n*   <code>TYPE<\/code>: Ba\u011flant\u0131 t\u00fcr\u00fc (<code>local<\/code> Unix soketleri i\u00e7in, <code>host<\/code> TCP\/IP ba\u011flant\u0131lar\u0131 i\u00e7in).<br \/>\n*   <code>DATABASE<\/code>: Ba\u011flan\u0131lacak veritaban\u0131 (<code>all<\/code> t\u00fcm veritabanlar\u0131 i\u00e7in).<br \/>\n*   <code>USER<\/code>: Ba\u011flan\u0131lacak kullan\u0131c\u0131 (<code>all<\/code> t\u00fcm kullan\u0131c\u0131lar i\u00e7in).<br \/>\n*   <code>ADDRESS<\/code>: Ba\u011flant\u0131n\u0131n geldi\u011fi IP adresi veya a\u011f aral\u0131\u011f\u0131.<br \/>\n*   <code>METHOD<\/code>: Kimlik do\u011frulama y\u00f6ntemi (<code>peer<\/code>, <code>ident<\/code>, <code>md5<\/code>, <code>trust<\/code>, <code>password<\/code> vb.).<\/p>\n<p><strong>\u00d6nemli Kimlik Do\u011frulama Y\u00f6ntemleri:<\/strong><br \/>\n*   <strong><code>peer<\/code><\/strong>: Unix soket ba\u011flant\u0131lar\u0131 i\u00e7in, i\u015fletim sistemi kullan\u0131c\u0131s\u0131 veritaban\u0131 kullan\u0131c\u0131s\u0131yla ayn\u0131ysa ba\u011flant\u0131ya izin verir. G\u00fcvenlidir.<br \/>\n*   <strong><code>ident<\/code><\/strong>: Eski bir kimlik do\u011frulama y\u00f6ntemi, <code>peer<\/code>&#8216;a benzer ancak TCP\/IP i\u00e7in. Genellikle g\u00fcvenli kabul edilmez.<br \/>\n*   <strong><code>md5<\/code><\/strong>: \u015eifre tabanl\u0131 kimlik do\u011frulama. \u015eifreler MD5 hash&#8217;i olarak g\u00f6nderilir. Uzak ba\u011flant\u0131lar i\u00e7in \u00f6nerilir.<br \/>\n*   <strong><code>password<\/code><\/strong>: \u015eifre tabanl\u0131 kimlik do\u011frulama. \u015eifreler a\u00e7\u0131k metin olarak g\u00f6nderilir. <strong>ASLA KULLANILMAMALIDIR.<\/strong><br \/>\n*   <strong><code>trust<\/code><\/strong>: Herkese \u015fifre sormadan ba\u011flant\u0131ya izin verir. <strong>ASLA \u00dcRET\u0130M ORTAMINDA KULLANILMAMALIDIR.<\/strong><\/p>\n<p><strong>Uzak Ba\u011flant\u0131lara \u0130zin Verme:<\/strong><br \/>\nE\u011fer PostgreSQL sunucunuza ba\u015fka bir makineden ba\u011flanmak istiyorsan\u0131z, <code>pg_hba.conf<\/code> dosyas\u0131nda buna izin veren bir sat\u0131r eklemeniz gerekir. \u00d6rne\u011fin, <code>192.168.1.0\/24<\/code> a\u011f\u0131ndaki t\u00fcm makinelerden <code>md5<\/code> \u015fifre do\u011frulamas\u0131yla ba\u011flanmaya izin vermek i\u00e7in:<\/p>\n<p><code>pg_hba.conf<\/code>&#8216;a ekleyin:<br \/>\n  host    all             all             192.168.1.0\/24          md5<\/p>\n<p>T\u00fcm IP adreslerinden (dikkatli olun!) ba\u011flanmaya izin vermek i\u00e7in:<br \/>\n  host    all             all             0.0.0.0\/0               md5<\/p>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<p>Komut:<br \/>\n  sudo service postgresql restart<\/p>\n<h4><code>postgresql.conf<\/code> Yap\u0131land\u0131rmas\u0131<\/h4>\n<p><code>postgresql.conf<\/code> dosyas\u0131, PostgreSQL sunucusunun \u00e7al\u0131\u015fma zaman\u0131 davran\u0131\u015f\u0131n\u0131 kontrol eden ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bu dosya genellikle <code>\/etc\/postgresql\/9.1\/main\/postgresql.conf<\/code> yolunda bulunur.<\/p>\n<p>Komut:<br \/>\n  sudo nano \/etc\/postgresql\/9.1\/main\/postgresql.conf<\/p>\n<p><strong>Uzak Ba\u011flant\u0131lar \u0130\u00e7in <code>listen_addresses<\/code>:<\/strong><br \/>\nE\u011fer uzak ba\u011flant\u0131lara izin verdiyseniz <code>pg_hba.conf<\/code>&#8216;ta, ayn\u0131 zamanda <code>postgresql.conf<\/code> i\u00e7inde <code>listen_addresses<\/code> ayar\u0131n\u0131 da yapman\u0131z gerekir. Varsay\u0131lan olarak, PostgreSQL yaln\u0131zca <code>localhost<\/code>&#8216;tan gelen ba\u011flant\u0131lar\u0131 dinler.<\/p>\n<p><code>postgresql.conf<\/code> i\u00e7inde \u015fu sat\u0131r\u0131 bulun ve d\u00fczenleyin:<br \/>\n  #listen_addresses = &#8216;localhost&#8217;         # what IP address(es) to listen on;<\/p>\n<p>Sat\u0131r\u0131n ba\u015f\u0131ndaki <code>#<\/code> i\u015faretini kald\u0131r\u0131n ve <code>localhost<\/code> yerine <code>*<\/code> (t\u00fcm aray\u00fczleri dinle) veya belirli bir IP adresi yaz\u0131n:<br \/>\n  listen_addresses = &#8216;*&#8217;                  # listen on all IP interfaces<\/p>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra PostgreSQL servisini yeniden ba\u015flat\u0131n:<\/p>\n<p>Komut:<br \/>\n  sudo service postgresql restart<\/p>\n<h4>G\u00fc\u00e7l\u00fc \u015eifreler Kullan\u0131n<\/h4>\n<p>T\u00fcm veritaban\u0131 kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc, karma\u015f\u0131k \u015fifreler kullan\u0131n. Asla varsay\u0131lan \u015fifreleri b\u0131rakmay\u0131n.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (UFW) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall) kullanarak sunucunuza gelen ba\u011flant\u0131lar\u0131 k\u0131s\u0131tlayabilirsiniz. PostgreSQL&#8217;in varsay\u0131lan portu 5432&#8217;dir. Yaln\u0131zca belirli IP adreslerinden veya a\u011flardan bu porta eri\u015fime izin vermelisiniz.<\/p>\n<p>\u00d6rne\u011fin, sadece <code>192.168.1.100<\/code> IP adresinden 5432 portuna eri\u015fime izin vermek i\u00e7in:<\/p>\n<p>Komut:<br \/>\n  sudo ufw allow from 192.168.1.100 to any port 5432<br \/>\n  sudo ufw enable<\/p>\n<p>E\u011fer t\u00fcm g\u00fcvenilen IP&#8217;lerinizi belirleyemiyorsan\u0131z ve sunucunuz internete a\u00e7\u0131k ise, sadece uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucu IP&#8217;sine veya VPN \u00fczerinden eri\u015fime izin vermek en g\u00fcvenli yakla\u015f\u0131md\u0131r.<\/p>\n<h3>Yedekleme ve Geri Y\u00fckleme<\/h3>\n<p>Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in d\u00fczenli yedeklemeler almak hayati \u00f6nem ta\u015f\u0131r. PostgreSQL, yedekleme ve geri y\u00fckleme i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar 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 i\u00e7eren bir dosyaya yedeklemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Tek bir veritaban\u0131n\u0131 yedekleme:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  pg_dump mydatabase > \/path\/to\/backup\/mydatabase_backup.sql<br \/>\n  exit<\/p>\n<p><code>mydatabase<\/code> yerine yedeklemek istedi\u011finiz veritaban\u0131n\u0131n ad\u0131n\u0131, <code>\/path\/to\/backup\/<\/code> yerine yedek dosyas\u0131n\u0131 kaydetmek istedi\u011finiz yolu yaz\u0131n.<\/p>\n<p>T\u00fcm veritabanlar\u0131n\u0131 yedekleme (genellikle <code>pg_dumpall<\/code> ile yap\u0131l\u0131r):<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  pg_dumpall > \/path\/to\/backup\/all_databases_backup.sql<br \/>\n  exit<\/p>\n<p>Bu komut, t\u00fcm veritabanlar\u0131n\u0131, rol tan\u0131mlar\u0131n\u0131 ve tablo alanlar\u0131n\u0131 i\u00e7eren tek bir SQL dosyas\u0131 olu\u015fturur.<\/p>\n<h4>Veritaban\u0131 Geri Y\u00fckleme<\/h4>\n<p>Yedeklenen bir veritaban\u0131n\u0131 geri y\u00fcklemek i\u00e7in <code>psql<\/code> komutunu kullan\u0131r\u0131z. Geri y\u00fcklemeden \u00f6nce genellikle bo\u015f bir veritaban\u0131 olu\u015fturman\u0131z gerekir.<\/p>\n<p>1.  Bo\u015f bir veritaban\u0131 olu\u015fturun (\u00f6rne\u011fin, <code>restore_db<\/code>):<\/p>\n<p>    Komut:<br \/>\n      sudo -i -u postgres<br \/>\n      createdb restore_db<br \/>\n      exit<\/p>\n<p>2.  Yedek dosyas\u0131n\u0131 bu bo\u015f veritaban\u0131na geri y\u00fckleyin:<\/p>\n<p>    Komut:<br \/>\n      sudo -i -u postgres<br \/>\n      psql -d restore_db < \/path\/to\/backup\/mydatabase_backup.sql\n      exit\n\n<code>pg_dumpall<\/code> ile al\u0131nan bir yede\u011fi geri y\u00fcklemek i\u00e7in:<\/p>\n<p>Komut:<br \/>\n  sudo -i -u postgres<br \/>\n  psql -f \/path\/to\/backup\/all_databases_backup.sql postgres<br \/>\n  exit<\/p>\n<p>Burada <code>postgres<\/code> veritaban\u0131na ba\u011flan\u0131l\u0131r \u00e7\u00fcnk\u00fc <code>pg_dumpall<\/code> yede\u011fi genellikle rol ve veritaban\u0131 olu\u015fturma komutlar\u0131n\u0131 i\u00e7erir ve bunlar t\u00fcm veritabanlar\u0131 i\u00e7in ge\u00e7erlidir.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>*   <strong>Ba\u011flant\u0131 Reddedildi (Connection Refused):<\/strong><br \/>\n    *   PostgreSQL servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo service postgresql status<\/code><br \/>\n    <em>   <code>postgresql.conf<\/code> dosyas\u0131ndaki <code>listen_addresses<\/code> ayar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun (<code><\/em><\/code> veya belirli IP).<br \/>\n    *   <code>pg_hba.conf<\/code> dosyas\u0131ndaki kurallar\u0131n ba\u011flant\u0131n\u0131za izin verdi\u011finden emin olun.<br \/>\n    *   G\u00fcvenlik duvar\u0131n\u0131z\u0131n (UFW) 5432 portuna eri\u015fimi engellemedi\u011finden emin olun.<\/p>\n<p>*   <strong>Kimlik Do\u011frulama Hatas\u0131 (Authentication Failed):<\/strong><br \/>\n    *   Kullan\u0131c\u0131 ad\u0131n\u0131z\u0131n ve \u015fifrenizin do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   <code>pg_hba.conf<\/code> dosyas\u0131ndaki kimlik do\u011frulama y\u00f6nteminin do\u011fru oldu\u011fundan emin olun (\u00f6rne\u011fin, <code>md5<\/code> kullan\u0131yorsan\u0131z do\u011fru \u015fifre girmeniz gerekir).<br \/>\n    *   <code>psql<\/code> ile ba\u011flan\u0131rken do\u011fru kullan\u0131c\u0131y\u0131 (<code>-U<\/code>) ve veritaban\u0131n\u0131 (<code>-d<\/code>) belirtti\u011finizden emin olun.<\/p>\n<p>*   <strong>PostgreSQL Servisi Ba\u015flam\u0131yor:<\/strong><br \/>\n    *   Hata loglar\u0131n\u0131 kontrol edin. Log dosyalar\u0131 genellikle <code>\/var\/log\/postgresql\/<\/code> dizininde bulunur (\u00f6rne\u011fin, <code>postgresql-9.1-main.log<\/code>).<br \/>\n    *   Yap\u0131land\u0131rma dosyalar\u0131n\u0131zda (<code>postgresql.conf<\/code>, <code>pg_hba.conf<\/code>) s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>*   <strong><code>psql<\/code> veya <code>createuser<\/code> gibi komutlar bulunam\u0131yor:<\/strong><br \/>\n    *   <code>PATH<\/code> de\u011fi\u015fkeninizin do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   <code>sudo -i -u postgres<\/code> komutuyla <code>postgres<\/code> i\u015fletim sistemi kullan\u0131c\u0131s\u0131na ge\u00e7i\u015f yapt\u0131\u011f\u0131n\u0131zdan emin olun, \u00e7\u00fcnk\u00fc bu komutlar genellikle o kullan\u0131c\u0131n\u0131n PATH&#8217;inde bulunur.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 makalede, Ubuntu 12.04 LTS i\u015fletim sistemi \u00fczerine PostgreSQL veritaban\u0131 y\u00f6netim sisteminin nas\u0131l kurulaca\u011f\u0131n\u0131 ve temel d\u00fczeyde nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frendiniz. Kurulum ad\u0131mlar\u0131ndan ba\u015flayarak, veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturma, temel CRUD i\u015flemleri, g\u00fcvenlik yap\u0131land\u0131rmalar\u0131 ve yedekleme\/geri y\u00fckleme s\u00fcre\u00e7lerine kadar bir\u00e7ok \u00f6nemli konuyu ele ald\u0131k. PostgreSQL&#8217;in sa\u011flaml\u0131\u011f\u0131 ve esnekli\u011fi, onu \u00e7e\u015fitli projeler i\u00e7in m\u00fckemmel bir se\u00e7im haline getirmektedir. Bu bilgilerle, kendi PostgreSQL sunucunuzu kurabilir ve y\u00f6netmeye ba\u015flayabilirsiniz. \u0130leri d\u00fczey kullan\u0131m ve optimizasyon konular\u0131 i\u00e7in PostgreSQL&#8217;in zengin dok\u00fcmantasyonunu ke\u015ffetmeye devam etmeniz \u00f6nerilir. Veritaban\u0131 y\u00f6netiminde iyi g\u00fcvenlik uygulamalar\u0131n\u0131 takip etmek ve d\u00fczenli yedeklemeler almak, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcz ve sisteminizin g\u00fcvenli\u011fi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/postgresql-basic-usage-bash-script\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/postgresql-basic-usage-bash-script<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Ubuntu 12.","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":[1468],"tags":[],"class_list":{"0":"post-42333","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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>Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131 - 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\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 12.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-06T05:00:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-06T05:01:23+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=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131\",\"datePublished\":\"2026-06-06T05:00:51+00:00\",\"dateModified\":\"2026-06-06T05:01:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\"},\"wordCount\":3031,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\",\"name\":\"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-06-06T05:00:51+00:00\",\"dateModified\":\"2026-06-06T05:01:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131\"}]},{\"@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":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131 - 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\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131","og_description":"Ubuntu 12.","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-06-06T05:00:51+00:00","article_modified_time":"2026-06-06T05:01:23+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131","datePublished":"2026-06-06T05:00:51+00:00","dateModified":"2026-06-06T05:01:23+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/"},"wordCount":3031,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/","name":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-06-06T05:00:51+00:00","dateModified":"2026-06-06T05:01:23+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-12-04-uzerine-postgresql-kurulumu-ve-kullanimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 12.04 \u00dczerine PostgreSQL Kurulumu ve Kullan\u0131m\u0131"}]},{"@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\/42333","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=42333"}],"version-history":[{"count":2,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42333\/revisions"}],"predecessor-version":[{"id":42335,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42333\/revisions\/42335"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=42333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=42333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=42333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}