Bu kapsamlı adım adım öğreticiyi kullanarak PostgreSQL 15’i Debian 12’ye nasıl kuracağınızı öğreneceksiniz. PostgreSQL, tam özellikli bir nesne-ilişkisel veritabanı yönetim sistemidir. SQL standardının büyük bir bölümünü destekler ve kullanıcılar tarafından birçok yönden genişletilebilir olacak şekilde tasarlanmıştır.
PostgreSQL 15’i Debian 12’ye kurun
PostgreSQL 15’in kurulumu
Bu yazı itibariyle, PostgreSQL 15 şu anki başlıca PostgreSQL sürümüdür.
Neyse ki, varsayılan Debian 12 ana depoları PostgreSQL paketleri sağlar.
apt-cache policy postgresql
postgresql:
Installed: (none)
Candidate: 15+248
Version table:
15+248 500
500 http://deb.debian.org/debian bookworm/main amd64 Packages
Bu, PostgreSQL 15.x’in Debian 12’ye kurulmasını kolaylaştırır.
Bu nedenle Debian 12 üzerinde PostgreSQL 15 kurmak için aşağıdaki komutu çalıştırın;
apt install postgresql postgresql-contrib
PostgreSQL’i Çalıştırmak
Yükleme tamamlandığında, PostgreSQL çalışacak ve sistem önyüklemesinde başlayacak şekilde ayarlanır. Hizmeti kontrol ederek doğrulayın.
systemctl status [email protected]
● [email protected] - PostgreSQL Cluster 15-main
Loaded: loaded (/lib/systemd/system/[email protected]; enabled-runtime; preset: enabled)
Active: active (running) since Thu 2023-07-06 18:53:12 CEST; 12s ago
Process: 4877 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 15-main start (code=exited, status=0>
Main PID: 4882 (postgres)
Tasks: 6 (limit: 2284)
Memory: 19.2M
CPU: 154ms
CGroup: /system.slice/system-postgresql.slice/[email protected]
├─4882 /usr/lib/postgresql/15/bin/postgres -D /var/lib/postgresql/15/main -c config_file=/etc/postgr>
├─4883 "postgres: 15/main: checkpointer "
├─4884 "postgres: 15/main: background writer "
├─4886 "postgres: 15/main: walwriter "
├─4887 "postgres: 15/main: autovacuum launcher "
└─4888 "postgres: 15/main: logical replication launcher "
Jul 06 18:53:10 bookworm systemd[1]: Starting [email protected] - PostgreSQL Cluster 15-main...
Jul 06 18:53:12 bookworm systemd[1]: Started [email protected] - PostgreSQL Cluster 15-main...
PostgreSQL’in Diğer Sürümlerini Debian 12’ye Kurmak
PostgreSQL APT Deposunu Kurun
Debian 12’de PostgreSQL’in diğer sürümlerini kurmak istiyorsanız, PostgreSQL apt deposunu eklemeniz gerekir;
apt install postgresql-common
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
apt update
PostgreSQL 14’ü Debian 12’ye kurun
apt install postgresql-14 postgresql-contrib-14
PostgreSQL 13’ü Debian 12’ye kurun
apt install postgresql-13 postgresql-contrib-13
You should be able to install other versions you need.
Yüklü PostgreSQL Sürümünün komut satırında Doğrulanması
PostgreSQL kurulumunun sürümünü aşağıdaki komutu kullanarak komut satırında bulabilirsiniz;
/usr/lib/postgresql/15/bin/postgres -V
Örnek komut çıktısı;
postgres (PostgreSQL) 15.3 (Debian 15.3-0+deb12u1)
Benzer şekilde şu komutu da kullanabilirsiniz;
sudo -Hiu postgres psql -c "SELECT version();"
Örnek çıktı;
version
-------------------------------------------------------------------------------------------------------------------
PostgreSQL 15.3 (Debian 15.3-0+deb12u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)
PostgreSQL’de oturum açma
Varsayılan olarak, postgres kullanıcısı PostgreSQL’in yüklenmesi üzerine oluşturulur.
id postgres
uid=114(postgres) gid=122(postgres) groups=122(postgres),110(ssl-cert)
Kullanıcının giriş dizini /var/lib/postgresql olarak ayarlanmıştır.
getent passwd postgres
postgres:x:114:122:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
Bu nedenle, PostgreSQL’e giriş yapmak için önce komutu kullanarak postgres kullanıcısına geçin;
sudo -Hiu postgres
Bu, bash istemini şu şekilde değiştirir;
postgres@bookworm:~$
Oturum açtıktan sonra, PostgreSQL kabuğuna ulaşmak için psql komutunu çalıştırabilirsiniz. psql, sorguları etkileşimli olarak yazmanızı, bunları PostgreSQL’e vermenizi ve sorgu sonuçlarını görmenizi sağlayan bir PostgreSQL etkileşimli terminal komutudur.
psql
Bu istemi şu şekilde değiştirir;
psql (15.3 (Debian 15.3-0+deb12u1))
Type "help" for help.
postgres=#
Çeşitli komut kullanımını görmek için help yazın.
help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#
\h
Available help:
ABORT CREATE FOREIGN DATA WRAPPER DROP ROUTINE
ALTER AGGREGATE CREATE FOREIGN TABLE DROP RULE
ALTER COLLATION CREATE FUNCTION DROP SCHEMA
ALTER CONVERSION CREATE GROUP DROP SEQUENCE
ALTER DATABASE CREATE INDEX DROP SERVER
ALTER DEFAULT PRIVILEGES CREATE LANGUAGE DROP STATISTICS
ALTER DOMAIN CREATE MATERIALIZED VIEW DROP SUBSCRIPTION
ALTER EVENT TRIGGER CREATE OPERATOR DROP TABLE
ALTER EXTENSION CREATE OPERATOR CLASS DROP TABLESPACE
ALTER FOREIGN DATA WRAPPER CREATE OPERATOR FAMILY DROP TEXT SEARCH CONFIGURATION
ALTER FOREIGN TABLE CREATE POLICY DROP TEXT SEARCH DICTIONARY
ALTER FUNCTION CREATE PROCEDURE DROP TEXT SEARCH PARSER
ALTER GROUP CREATE PUBLICATION DROP TEXT SEARCH TEMPLATE
ALTER INDEX CREATE ROLE DROP TRANSFORM
ALTER LANGUAGE CREATE RULE DROP TRIGGER
ALTER LARGE OBJECT CREATE SCHEMA DROP TYPE
ALTER MATERIALIZED VIEW CREATE SEQUENCE DROP USER
ALTER OPERATOR CREATE SERVER DROP USER MAPPING
ALTER OPERATOR CLASS CREATE STATISTICS DROP VIEW
ALTER OPERATOR FAMILY CREATE SUBSCRIPTION END
ALTER POLICY CREATE TABLE EXECUTE
ALTER PROCEDURE CREATE TABLE AS EXPLAIN
ALTER PUBLICATION CREATE TABLESPACE FETCH
ALTER ROLE CREATE TEXT SEARCH CONFIGURATION GRANT
ALTER ROUTINE CREATE TEXT SEARCH DICTIONARY IMPORT FOREIGN SCHEMA
ALTER RULE CREATE TEXT SEARCH PARSER INSERT
ALTER SCHEMA CREATE TEXT SEARCH TEMPLATE LISTEN
ALTER SEQUENCE CREATE TRANSFORM LOAD
ALTER SERVER CREATE TRIGGER LOCK
ALTER STATISTICS CREATE TYPE MERGE
ALTER SUBSCRIPTION CREATE USER MOVE
ALTER SYSTEM CREATE USER MAPPING NOTIFY
ALTER TABLE CREATE VIEW PREPARE
ALTER TABLESPACE DEALLOCATE PREPARE TRANSACTION
ALTER TEXT SEARCH CONFIGURATION DECLARE REASSIGN OWNED
ALTER TEXT SEARCH DICTIONARY DELETE REFRESH MATERIALIZED VIEW
ALTER TEXT SEARCH PARSER DISCARD REINDEX
ALTER TEXT SEARCH TEMPLATE DO RELEASE SAVEPOINT
ALTER TRIGGER DROP ACCESS METHOD RESET
ALTER TYPE DROP AGGREGATE REVOKE
ALTER USER DROP CAST ROLLBACK
ALTER USER MAPPING DROP COLLATION ROLLBACK PREPARED
ALTER VIEW DROP CONVERSION ROLLBACK TO SAVEPOINT
ANALYZE DROP DATABASE SAVEPOINT
BEGIN DROP DOMAIN SECURITY LABEL
CALL DROP EVENT TRIGGER SELECT
CHECKPOINT DROP EXTENSION SELECT INTO
CLOSE DROP FOREIGN DATA WRAPPER SET
CLUSTER DROP FOREIGN TABLE SET CONSTRAINTS
COMMENT DROP FUNCTION SET ROLE
COMMIT DROP GROUP SET SESSION AUTHORIZATION
COMMIT PREPARED DROP INDEX SET TRANSACTION
COPY DROP LANGUAGE SHOW
CREATE ACCESS METHOD DROP MATERIALIZED VIEW START TRANSACTION
CREATE AGGREGATE DROP OPERATOR TABLE
CREATE CAST DROP OPERATOR CLASS TRUNCATE
CREATE COLLATION DROP OPERATOR FAMILY UNLISTEN
CREATE CONVERSION DROP OWNED UPDATE
CREATE DATABASE DROP POLICY VACUUM
CREATE DOMAIN DROP PROCEDURE VALUES
CREATE EVENT TRIGGER DROP PUBLICATION WITH
CREATE EXTENSION DROP ROLE
PostgreSQL’e Başlarken
Artık PostgreSQL’i kullanmaya başlayabilirsiniz.
PostgreSQL Veritabanı Oluşturun
Yukarıda gösterildiği gibi PostgreSQL’e giriş yaptıktan sonra veritabanlarınızı oluşturabilirsiniz.
Örneğin kifarunix isimli bir veritabanı oluşturmak için;
create database kifarunix;
PostgreSQL’de veritabanlarını listeleme
\l ,meta-komutunu kullanarak PostgreSQL’de oturum açmışken veritabanlarını listeleyebilirsiniz;
\l
örnek çıktı;
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
kifarunix | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
PostgreSQL Veritabanı Kullanıcısı Oluşturun
Komutu kullanarak PostgreSQL veritabanı kullanıcısı oluşturabilirsiniz;
CREATE USER your_username WITH PASSWORD 'your_password';
Örneğin;
create user kifarunixadmin with password 'ChangeME_pass';
PostgreSQL’de Veritabanı Kullanıcılarını Listeleme
\du meta-komutunu kullanarak PostgreSQL’de veritabanı kullanıcılarını listeleyebilirsiniz;
\du
List of roles
Role name | Attributes | Member of
----------------+------------------------------------------------------------+-----------
kifarunixadmin | | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
PostgreSQL’de Veritabanı Kullanıcısına Roller Verme
Bir kullanıcıya belirli bir veritabanında belirli roller verebilirsiniz.
Örneğin, veritabanındaki tüm ayrıcalıkları kullanıcıya verin;
GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_username;
Örneğin
grant all privileges on database kifarunix to kifarunixadmin;
Belirli roller de verebilirsiniz. PostgreSQL GRANT hakkında daha fazlasını okuyabilirsiniz.
Yukarıdaki grant komutu, username gibi bir rol yaratır;
select rolname from pg_roles;
rolname
---------------------------
postgres
pg_database_owner
pg_read_all_data
pg_write_all_data
pg_monitor
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
pg_read_server_files
pg_write_server_files
pg_execute_server_program
pg_signal_backend
pg_checkpoint
kifarunixadmin
(14 rows)
Veritabanında kullanıcımıza atanan ayrıcalıkları listelemek için;
\dp kifarunixadmin
Belirli bir nesne için “Erişim ayrıcalıkları” sütunu boşsa, bu, nesnenin varsayılan ayrıcalıklara sahip olduğu anlamına gelir (yani, ilgili sistem kataloğundaki ayrıcalıklar girişi boştur). Varsayılan ayrıcalıklar her zaman sahip için tüm ayrıcalıkları içerir ve nesne türüne bağlı olarak KAMU için bazı ayrıcalıklar içerebilir.
PostgreSQL hakkında daha fazla bilgi edinmek için belgeler sayfasındaki PostgreSQL’e Başlarken’e bakın.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.