Debian 8.x (Jessie) üzerine PostgreSQL 9.6 Kurulumu

Bildiğiniz gibi 2016 eylül sonunda PostgreSQL’in 9.6 versiyonu çıktı. Bu makalede PostgreSQL 9.6’nın minimal bir Debian 8.x (Jessie) üzerinde kurulum adımlarını bulacaksınız. Ek olarak, Türkçe desteği olan bir veritabanı oluşturacağız.

PostgreSQL’de UTF-8 desteği olduğu için herhangi bir dildeki karakteri veritabanında saklayabilirsiniz. Yalnız hangi küçük harfin hangi büyük harfle eşleneceği veya karakterleri sıralarken nasıl bir sıra izleneceği dilin yapısıyla ilgilidir. Türkçe için “i”nin büyük harfi “İ” iken İngilizcede “I” şeklindedir. Bu durum çeşitli fonksiyonların verdikleri çıktıların dile göre farklı olacağı anlamına gelir. PostgreSQL’de bu ayarlar veritabanı oluştururken yapılır. (aynı veritabanında farklı dil destekleri de kullanılabilir ama bu detaya girmeyeceğim)

Ön koşul

Bu makale ssh destekli minimal bir Jessie kurulumunun yapıldığını ve root yetkinizin olduğunu varsayarak başlar. Minimal bir Jessie kurulumu için burada bulunan adımları okuyabilirsiniz. Site İngilizcedir. Ek olarak vim / nano gibi bir shell editörünü kullanılabilir olmalısınız. Ben makalede vim kullanacağız.

Kurulum

Debian Dil ayarları

İlk iş olarak işletim sistemimizin varsayılan locale’ini ve Türkçe localin yüklü olup olmadığını kontrol edelim. Türkçe locale yoksa yükleyelim. Varsayılan locale’i kontrol etmek için;

root@JESSIE:/home/sahap# echo $LANG
en_US.UTF-8

Varsayılan dilimiz en_US.UTF-8  Bunu not edip devam ediyoruz ve aşağıdaki komutu çalıştırıyoruz.

dpkg-reconfigure locales

[*] tr_TR.UTF-8 UTF-8 seçeneğinin seçili olduğuna emin olalım (space ile seçebilirsiniz) ve <OK> tuşuna basarak (Tab ile geçebilirsiniz) devam edelim.

Daha önce varsayılan locale’in ne olduğuna bakmıştık, onu seçerek yolumuza devam ediyoruz. Bunun amacı aslında hali hazırda çalışan servislerin dil ayarları ile oynamamış olmak. Bizim durumumuzda bu en_US.UTF-8  idi

<OK>ye bastığımızda aşağıdaki gibi bir sonuç gelmesi gerekiyor. Böylece işletim sistemimizde Türkçe dil desteğinin olduğuna emin olmuş oluyoruz.

root@JESSIE:/home/sahap# dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  tr_TR.UTF-8... done
Generation complete.

PostgreSQL Kurulumu

Debian içerisinde halihazırda PostgreSQL paketleri geliyor ama kararlı debian sürümleri halihazırda geldiği PostgreSQL versiyonunu sabit tuttuğu için daha yenisi yüklemek istediğimizde PostgreSQL’in kendi repository’sini kullanıyoruz. Bizim durumumuzda Jessie, PostgreSQL’in 9.4 versiyonu ile beraber geliyor ama biz 9.6 versiyonunu yüklemek istiyoruz.

Önce repository’mizi ekleyelim;

vim /etc/apt/sources.list.d/pgdg.list

Daha sonra açılan dökümanın içerisine aşağıdaki satırı yazıyoruz. Bu sayede Jessie mevcut paketlerde arama yaparken bizim verdiğimiz URL’i de kontrol etmiş oluyor.

deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main

Kaydedip çıkalım;

Repository’nin key’ini güvenilir key’lere ekliyoruz.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

Paket listesini güncelliyoruz;

 apt-get update 

PostgreSQL’i yükleyelim; Çıkan soruya 'Y' diyerek devam edelim;

apt-get install postgresql-9.6

Aşağıdaki bilgi bize veri dosyalarımızın nerede olduğu ile ilgili bilgileri veriyor.

Creating new cluster 9.6/main ...
  config /etc/postgresql/9.6/main
  data   /var/lib/postgresql/9.6/main
  locale en_US.UTF-8
  socket /var/run/postgresql
  port   5432

Konfigurasyon dosyalarımız /etc/postgresql/9.6/main içerisinde ve veri dosyalarımız /var/lib/postgresql/9.6/main içerisinde. Bunlar varsayılan ayarlar ve istenildiği gibi değiştirilebilir. Şimdilik o detaya girmeyelim. Servisimizin çalıştığını kontrol edelim ve PostgreSQL’in çalışır vaziyette olduğunu görelim;

systemctl status postgresql

Türkçe Veritabanı Oluşturma

PostgreSQL kurulumuzu yaptığımıza göre artık içerisine veritabanını oluşturabiliriz. İşletim sistemimizin varsayılan locale’i en_US.UTF-8 olduğu için PostgreSQL’de varsayılan dilde bir cluster oluşturdu. Eğer biz bir parametre vermeden içerisine yeni bir veritabanı oluşturursak yine varsayılan olan en_US.UTF-8 locale’inde bir veritabanımız olacak. Eğer en başta işletim sistemimizde varsayılan dilimiz tr_TR.UTF-8 olsaydı o zaman bunlara gerek yoktu. Çoğu işletim sistemi kurulumu İngilizce olduğu için bunların kontrol edilmesi gerekiyor.

PostgreSQL’e bash’ten giriş yapalım; Bunun birkaç yolu var. Bunlardan biri kurulumla beraber oluşan postgres kullanıcısı ile giriş yapmak. Önce o kullanıcıya geçelim daha sonra psql kullanarak veritabanına bağlanalım.

su postgres
psql

Veritabanımızı oluşturalım;

CREATE DATABASE testdb WITH
  TEMPLATE = template0
  ENCODING = 'UTF8'
  LC_COLLATE = 'tr_TR.UTF-8'
  LC_CTYPE = 'tr_TR.UTF-8';

\c testdb ile yeni oluşturduğumuz veritabanına bağlanabilirsiniz.

postgres=# \c testdb
You are now connected to database "testdb" as user "postgres".
testdb=#

Türkçe karakterleri ve sıralamasını test edelim;

SELECT
  harf, upper(harf)
FROM (
VALUES ('ş'), ('t'), ('u'), ('a'), ('n'), ('o'), ('ö'), ('p'), ('f'), ('g'), ('ğ'), ('h'), ('ı'), ('i'), ('j'
  ), ('k'), ('l'), ('m'), ('ü'), ('v'), ('r'), ('s'), ('b'), ('c'), ('ç'), ('d'), ('e'), ('y'), ('z')) AS
  alfabe(harf)
ORDER BY 1; 

Türkçe veritabanımız hazır. Henüz postgreSQL sunucusuna başka bir bilgisayardan erişim için gerekli ayarları yapmadık. Yalnızca kurulu olduğu bilgisayardan eriştik. Başka bir makalede erişimle ilgili detaylara gireceğiz.

Referanslar

Loading

Leave Your Comment