Ubuntu Üzerine PostgreSQL Kurulumu

Merhaba. Bu yazıda size Ubuntu Üzerine PostgreSQL Kurulumu hakkında bilgi aktaracağım. İsterseniz resmi sitesine de göz atabilirsiniz. Yazdığım son yazının kategorisinden çok farklı bir yazı olacak.

Ubuntu Üzerine PostgreSQL Kurulumu

Ubuntu Üzerine PostgreSQL Kurulumu Nasıl Yapılır?

Ubuntu Üzerine PostgreSQL Kurulumu hakkında başlamadan önce belirtmek isterim ki ben Ubuntu 16.04 kullanıyorum. Hani çok etki eder mi derseniz bilmiyorum ama belirteyim istedim. Öncelikle kullandığımız ubuntu depolarının güncellenmiş olması gerekiyor. Böylelikle PostgreSQL en güncel haliyle kurulacaktır.

sudo apt-get update

Güncelleme işlemi bittikten sonra postgresql kurulumuna geçebiliriz.

sudo apt-get install postgresql postgresql-contrib

Kurulumun yapılmasını bekliyoruz. Çok sürmedi bende ama eğer kurulum yavaşsa internetiniz veya makinenizle alakalı olabilir. PostgreSQL yetkilendirme işlemlerini rol tabanlı gerçekleştirmektedir. Ben şu an kullandığım için söylemek istiyorum ident adında bir olayımız var. Kurulumdan sonra komut satırına direkt psql yazarsanız kullandığınız dağıtımdaki kullanıcı adını işaret ederek bu isimde bir rol olmadığını size söyleyecektir. Bu ne demek?

PostgreSQL’in ident olayı unix / linux dağıtımlarında rol ve sistem hesap adının aynı olması için kullanılan bir yapı. Eğer açıkca belirtmiyorsanız default login sistem adınızdır. Tabii bunun için bir de sistem adı ile aynı rol set etmemiz gerekiyor. Siz bu kısa metni okurken oldu da kurulum tamamlandıysa sonraki adıma geçelim.

Postgres Hesabı

PostgreSQL kurulumu tamamlandıktan sonra bir adet sistem hesabı da tanımlanacaktır. Yani kullandığınız dağıtımda postgres adında bir kullanıcı oluşmakta. Dilerseniz postgresql için özel olarak oluşturulan bu kullanıcıya geçişi aşağıdaki komutla sağlayabilirsiniz:

sudo -i -u postgres

Şu anda postgres hesabındasınız. Ancak henüz psql shell’e giriş yapmış değiliz. Bunun için komut satırına psql komutunu girelim. Dikkatinizi çekmesi açısından söylüyorum postgres hesabındayken komut satırına psql yazmalısınız. Dilerseniz postgres kullanıcısından exit komutu ile çıkış yapıp mevcut hesabınıza dönebilirsiniz. Buraya kadar olanı SQL kısmından bağımsız bildiğiniz Unix / Linux kullanıcı hesabı ile alakalı.

 ~  sudo -i -u postgres
postgres@ali:~$ psql
Password: 
psql (10.0, server 9.6.5)
Type "help" for help.

postgres=# 

Yukarıda gördüğünüz gibi bir dolaşımda bulunduk. Ben daha önceden parola sormasını istediğim için parola soruyor. Ancak ilk durumda parola gereksinimi yaşamıyorsunuz. Bu ekrandan çıkmak için \q komutunu kullanabilirsiniz. Eğer hesap değiştirerek shell’e bağlantı açmak kafa karıştırıcı geldiyse aşağıdaki komutla da geçiş yapabilirsiniz.

sudo -u postgres psql

Çıkış işlemi yine \q ile yapılacak.

Yeni Rol Tanımlama

Şu an sıfırdan kurulumla ayaktayız. Bu yüzden veritabanı içerisinde hazır bir şekilde gelen postgres’i kullanıyoruz. Ancak bu gerçek işlemler yapılacağı zaman çok önerilen bir yöntem değil. Yani sizi projelere özel rollere ve veritabanlarına ihtiyacınızın olduğu bir gerçek. Herhangi bir dolaşımda bulunmadan şu komutla interactive shell üzerinden rol tanımlayacağız:

sudo -u postgres createuser --interactive

Karşımıza gelen ekranda bizden yeni rolümüzün adını isteyen bir input alanı olacak yine konsol tabanlı. Bu ekranda yes demeniz gerekiyor ama kısacası sorduğu şey “abi bu eklediğin rolü yetkili abi olarak mı ekleyeyim?” ile aynı.

Enter name of role to add: BizimYeniRol
Shall the new role be a superuser? (y/n) y

Eğer komut satırına man createuser yazarsanız bu komutla neler yapabileceğinizi daha detaylı görebilirsiniz. En hoşuma giden oluşturulan bu kullanıcıya maximum kaç connection gelebileceği ile ilgilili olan özellik. Merak etmeyin varsayılan limitsiz connectiondır.

Yeni Veritabanı Oluşturma

Geldik veritabanı olayına. Oluşturacağınız veritabanı rol ile aynı isme sahip olursa direkt olarak yetkilendirme işlemi başarılı bir şekilde sağlanabilecektir. Yani konsola psql yazdığınızda direkt rol ile aynı isme sahip bir database’e de bağlanmış oluyorsunuz. Yeni bir database oluşturalım:

sudo -u postgres createdb BizimYeniRol

Böyle bir db ismi pek şık değil ama örnek bütünlüğünü korusun istedim. Bu arada default olarak bağlandığınız veritabanı şu an çalıştığınız rol ile aynı isme sahip olan veritabanı olabilir ancak siz farklı veritabanları da oluşturup onlar arasında dolaşabilirsiniz. Bu ayrı bir yazının konusu olabilir.

PostgreSQL Shellini Yeni Rol ile Açmak

Sona yaklaşıyoruz. Yukarıda bahsettiğim gibi ident temelli bir durum mevcut olduğu için rolümüze has bir adet linux kullancısı oluşturabiliriz. Burada işlem tamamen unix / linux kısmıyla alakalı. Yeni bir kullanıcı açalım bunun da adı diğeriyle aynı olacak.

sudo adduser BizimYeniRol

Daha sonra açtığımız bu kullanıcıya geçiş yapalım:

sudo -i -u BizimYeniRol

Ardından konsoldan psql komutunu verelim. Yukarıda söylemiştim bir kullanıcıda birden fazla database yer alabilir. Farklı bir databasei seçerek direkt bağlanmak isteyebilirsiniz. Varsayılan postgres isminde bir database var. Ayrıca users adında da bir database var diyelim. Tablolar değil veritabanları. Bunlara şöyle ulaşabilirsiniz:

-- postgres veritabanına bağlan
psql -d postgres

-- blog veritabanına bağlan
psql -d blog

-- cms veritabanına bağlan

psql -d cms

Farklı veritabanlarına bağlanıp daha sonra \dt komutu ile tabloları görebilirsiniz.

Mevcut Bağlantı Bilgisi

Olur da mevcut bağlantınıza dair bilgileri merak ederseniz diye abiler bunu da düşünmüşler. \conninfo komutu size bağlantı bilgisini verir.

ali=> \conninfo
You are connected to database "ali" as user "ali" via socket in "/var/run/postgresql" at port "5432".

Tablo oluşturma ve benzeri işlemler bu yazının konusu olmadığı için bu yazıda bahsetmeyeceğim. Ama önceden bir SQL geçmişiniz var ise aynı şekilde yapıldığını bilmenizi istiyorum. Tek fark bazı veri  türlerinin size “bu ne lan” dedirtecek oluşu.

GUI SQL Client

Bir diğer mevzu da ben bu yönetim işini MySQL Workbench, SQL Server Management Studio ya da Navicat ile yapamaz mıyım sorunu. Grafik arayüzlü SQL araçları hayatı kolaylaştırıcı olduğu için ve zamandan tasarruf ettirdiği için gereksinim halinde. Size iki önerim olabilir. Birincisi ücretsiz olacak şekilde. Bu yazı aslında Ubuntu Üzerine PostgreSQL Kurulumu hakkında ama pgAdmin konusu da gündemde olduğu için belirteyim istedim. Zira anket şirketleri kendisi hakkında yaptığı araştırmaları kamuoyuna açıklayamıyorlar çok fazla küfrediliyor.

DBeaver

Arkadaşlar bu yazılım cross platform çalışacak şekilde eclipse üzerine inşa edilmiş. Direkt ücretsiz diyemesem de en önemli özellikleri ücretsizdir. Diğer bazı ücretli araçlar gibi universal yani birden fazla sql engine destekliyor.

DBeaver İndir

DataGrip

JetBrains firması tarafından geliştirilen bu SQL Ide ise yine yukarıda yer alan DBeaver gibi ancak daha gelişmiş bir Ide. Bu direkt ücretli bir IDE olduğu için ikinci sırada yazdım. Ancak bulunduğunuz üniversitenin emaili ile okul sonuna kadar ücretsiz kullanabilirsiniz. Şekil şemal olarak bu abimiz çok daha güzel görünüyor. İllede tasarım diyorum uleyn diyenler buraya bakabilirler. Bir de tabi DBeaver çok fazla bug’a sahip.

DataGrip İndir

Hepsi bu kadar. Okuduğunuz için teşekkür ederim. Bir başka yazıda umarım yine PostgreSQL üzerine yazılmış olur. Bu yazıda Ubuntu Üzerine PostgreSQL Kurulumu hakkında bazı bilgiler edindik.