Skip to content

Veritabanı Kurulumları (Database Installation Guide)

Bu rehber, en yaygın kullanılan veritabanı sistemlerinin kurulumunu adım adım anlatır. (This guide covers step-by-step installation of the most commonly used database systems.)

Gereksinimler (Prerequisites)

  • Linux: Ubuntu 22.04+ önerilir (recommended)
  • Windows: Windows 10/11, PowerShell yönetici olarak (as Administrator)
  • macOS: Homebrew yüklü olmalı (/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")
  • Docker: Docker Engine veya Docker Desktop kurulu olmalı (must be installed)

1. MySQL

MySQL, en yaygın kullanılan ilişkisel veritabanıdır. (MySQL is the most widely used relational database.)

Ubuntu / Linux

bash
# Paket listesini güncelle (Update package list)
sudo apt update

# MySQL Server kurulumu (Install MySQL Server)
sudo apt install -y mysql-server

# Servisi başlat ve otomatik başlatmayı etkinleştir (Start and enable service)
sudo systemctl start mysql
sudo systemctl enable mysql

# Durum kontrolü (Check status)
sudo systemctl status mysql

# Güvenlik ayarları (Security configuration)
sudo mysql_secure_installation

mysql_secure_installation sırasında sorulacaklar (prompts during setup):

  • VALIDATE PASSWORD komponent kurulsun mu? (Set up VALIDATE PASSWORD component?) -- Evet (Yes)
  • Root şifresini belirle (Set root password)
  • Anonim kullanıcıları kaldır (Remove anonymous users) -- Evet (Yes)
  • Root uzaktan erişimini kapat (Disallow root login remotely) -- Evet (Yes)
  • Test veritabanını kaldır (Remove test database) -- Evet (Yes)
  • Yetki tablolarını yeniden yükle (Reload privilege tables) -- Evet (Yes)
bash
# Root olarak giriş (Login as root)
sudo mysql -u root -p

# Yeni kullanıcı oluştur (Create new user)
CREATE USER 'fahri'@'localhost' IDENTIFIED BY 'GucluSifre123!';
GRANT ALL PRIVILEGES ON *.* TO 'fahri'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Windows

  1. MySQL Installer sayfasından MSI dosyasını indir (Download the MSI file)
  2. Developer Default veya Server only seçeneğini seç (Select setup type)
  3. Kurulum sihirbazını takip et (Follow the installation wizard)
  4. Root şifresi belirle (Set root password)
  5. MySQL Workbench otomatik kurulur (MySQL Workbench installs automatically)
powershell
# Kurulumdan sonra PATH'e eklendiğinden emin ol (Verify PATH after installation)
mysql --version

# Bağlantı testi (Connection test)
mysql -u root -p

macOS

bash
# Homebrew ile kur (Install with Homebrew)
brew install mysql

# Servisi başlat (Start service)
brew services start mysql

# Güvenlik ayarları (Security setup)
mysql_secure_installation

# Bağlantı testi (Connection test)
mysql -u root -p

Docker

bash
# Tek komutla çalıştır (Run with single command)
docker run -d \
  --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=RootSifre123! \
  -e MYSQL_DATABASE=uygulamam \
  -e MYSQL_USER=fahri \
  -e MYSQL_PASSWORD=KullaniciSifre123! \
  -p 3306:3306 \
  -v mysql_data:/var/lib/mysql \
  mysql:8.0

Docker Compose ile (with Docker Compose):

yaml
# docker-compose.yml
services:
  mysql:
    image: mysql:8.0
    container_name: mysql-server
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: RootSifre123!
      MYSQL_DATABASE: uygulamam
      MYSQL_USER: fahri
      MYSQL_PASSWORD: KullaniciSifre123!
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:
bash
# Başlat (Start)
docker compose up -d

# Logları kontrol et (Check logs)
docker logs mysql-server

Bağlantı Testi ve İlk Veritabanı (Connection Test & First Database)

bash
# Bağlantı testi (Connection test)
mysql -u fahri -p

# İlk veritabanı oluştur (Create first database)
CREATE DATABASE proje_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE proje_db;

# Örnek tablo (Sample table)
CREATE TABLE kullanicilar (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ad VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    olusturma_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

# Veri ekle (Insert data)
INSERT INTO kullanicilar (ad, email) VALUES ('Fahri', 'fahri@example.com');
SELECT * FROM kullanicilar;

GUI Araçları (GUI Tools)

Araç (Tool)PlatformAçıklama (Description)
MySQL WorkbenchTümü (All)Resmi MySQL aracı (Official MySQL tool)
phpMyAdminWebPHP tabanlı web arayüzü (PHP-based web interface)
DBeaverTümü (All)Ücretsiz, çoklu veritabanı desteği (Free, multi-database support)

2. PostgreSQL

PostgreSQL, gelişmiş özelliklere sahip açık kaynak veritabanıdır. (PostgreSQL is an advanced open-source database.)

Ubuntu / Linux

bash
# Paket listesini güncelle ve kur (Update and install)
sudo apt update
sudo apt install -y postgresql postgresql-contrib

# Servisi başlat (Start service)
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql

# PostgreSQL sürümünü kontrol et (Check version)
psql --version

Kullanıcı ve veritabanı oluşturma (Create user and database):

bash
# postgres kullanıcısına geç (Switch to postgres user)
sudo -u postgres psql

# Yeni kullanıcı oluştur (Create new user)
CREATE USER fahri WITH PASSWORD 'GucluSifre123!' CREATEDB;

# Veritabanı oluştur (Create database)
CREATE DATABASE proje_db OWNER fahri;

# Yetkileri kontrol et (Check privileges)
\du

# Çıkış (Exit)
\q

pg_hba.conf ayarları (pg_hba.conf configuration):

bash
# Dosya konumunu bul (Find config file location)
sudo -u postgres psql -c "SHOW hba_file;"

# Düzenle (Edit) -- genellikle /etc/postgresql/16/main/pg_hba.conf
sudo nano /etc/postgresql/16/main/pg_hba.conf
bash
# pg_hba.conf içinde şu satırları ayarla (Set these lines):
# TYPE  DATABASE  USER  ADDRESS       METHOD
local   all       all                 scram-sha-256
host    all       all   127.0.0.1/32  scram-sha-256
host    all       all   ::1/128       scram-sha-256
bash
# Değişikliklerden sonra yeniden başlat (Restart after changes)
sudo systemctl restart postgresql

Windows

  1. PostgreSQL Downloads sayfasından installer indir (Download installer)
  2. Kurulum sihirbazında şunları seç (Select during wizard):
    • PostgreSQL Server
    • pgAdmin 4
    • Command Line Tools
  3. Superuser (postgres) şifresini belirle (Set superuser password)
  4. Port: 5432 (varsayılan / default)
powershell
# PATH kontrolü (Check PATH)
psql --version

# Bağlantı testi (Connection test)
psql -U postgres -h localhost

macOS

bash
# Homebrew ile kur (Install with Homebrew)
brew install postgresql@16

# Servisi başlat (Start service)
brew services start postgresql@16

# PATH'e ekle (Add to PATH)
echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# Veritabanı oluştur (Create database)
createdb proje_db

Alternatif: Postgres.app -- macOS için kolay kurulum (easy setup for macOS). Indir, Applications klasörüne sürükle, aç. (Download, drag to Applications, open.)

Docker

bash
# Tek komutla çalıştır (Run with single command)
docker run -d \
  --name postgres-server \
  -e POSTGRES_USER=fahri \
  -e POSTGRES_PASSWORD=GucluSifre123! \
  -e POSTGRES_DB=proje_db \
  -p 5432:5432 \
  -v postgres_data:/var/lib/postgresql/data \
  postgres:16-alpine

Docker Compose ile (with Docker Compose):

yaml
# docker-compose.yml
services:
  postgres:
    image: postgres:16-alpine
    container_name: postgres-server
    restart: unless-stopped
    environment:
      POSTGRES_USER: fahri
      POSTGRES_PASSWORD: GucluSifre123!
      POSTGRES_DB: proje_db
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

psql Bağlantı Testi (psql Connection Test)

bash
# Bağlantı (Connect)
psql -U fahri -d proje_db -h localhost

# Veritabanlarını listele (List databases)
\l

# Tabloları listele (List tables)
\dt

# Örnek tablo oluştur (Create sample table)
CREATE TABLE urunler (
    id SERIAL PRIMARY KEY,
    ad VARCHAR(200) NOT NULL,
    fiyat DECIMAL(10,2) NOT NULL,
    olusturma_tarihi TIMESTAMP DEFAULT NOW()
);

INSERT INTO urunler (ad, fiyat) VALUES ('Laptop', 15999.99);
SELECT * FROM urunler;

# Çıkış (Exit)
\q

GUI Araçları (GUI Tools)

Araç (Tool)PlatformAçıklama (Description)
pgAdmin 4Tümü (All)Resmi PostgreSQL aracı (Official PostgreSQL tool)
DBeaverTümü (All)Ücretsiz, çoklu veritabanı desteği (Free, multi-database)

3. SQLite

SQLite, sunucu gerektirmeyen dosya tabanlı veritabanıdır. (SQLite is a serverless file-based database.)

Ubuntu / Linux

bash
# Kurulum (Install)
sudo apt update
sudo apt install -y sqlite3

# Sürüm kontrolü (Check version)
sqlite3 --version

Windows

  1. SQLite Downloads sayfasından sqlite-tools-win-x64 zip dosyasını indir (Download the zip file)
  2. Zip dosyasını C:\sqlite klasörüne çıkar (Extract to C:\sqlite)
  3. Sistem PATH'ine ekle (Add to system PATH):
powershell
# PowerShell (Yönetici / Administrator)
[Environment]::SetEnvironmentVariable(
    "Path",
    $env:Path + ";C:\sqlite",
    [EnvironmentVariableTarget]::Machine
)

# Yeni terminal aç ve kontrol et (Open new terminal and verify)
sqlite3 --version

macOS

macOS ile birlikte gelir, ek kurulum gerekmez. (Comes pre-installed with macOS, no additional setup needed.)

bash
# Sürüm kontrolü (Check version)
sqlite3 --version

Temel Kullanım (Basic Usage)

bash
# Yeni veritabanı oluştur veya mevcut olanı aç (Create new or open existing database)
sqlite3 proje.db

# Tablo oluştur (Create table)
CREATE TABLE notlar (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    baslik TEXT NOT NULL,
    icerik TEXT,
    tarih TEXT DEFAULT (datetime('now'))
);

# Veri ekle (Insert data)
INSERT INTO notlar (baslik, icerik) VALUES ('İlk not', 'SQLite çalışıyor!');
SELECT * FROM notlar;

# Tabloları listele (List tables)
.tables

# Tablo yapısını göster (Show table schema)
.schema notlar

# Çıkış (Exit)
.quit

Python ile Kullanım (Usage with Python)

Python, sqlite3 modülünü yerleşik olarak içerir. (Python includes the sqlite3 module built-in.)

python
import sqlite3

# Veritabanına bağlan (Connect to database)
conn = sqlite3.connect('proje.db')
cursor = conn.cursor()

# Tablo oluştur (Create table)
cursor.execute('''
    CREATE TABLE IF NOT EXISTS kullanicilar (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        ad TEXT NOT NULL,
        email TEXT UNIQUE NOT NULL
    )
''')

# Veri ekle (Insert data)
cursor.execute(
    "INSERT INTO kullanicilar (ad, email) VALUES (?, ?)",
    ("Fahri", "fahri@example.com")
)
conn.commit()

# Veri oku (Read data)
cursor.execute("SELECT * FROM kullanicilar")
for row in cursor.fetchall():
    print(row)

# Bağlantıyı kapat (Close connection)
conn.close()

GUI Araçları (GUI Tools)

Araç (Tool)PlatformAçıklama (Description)
DB Browser for SQLiteTümü (All)En popüler SQLite GUI aracı (Most popular SQLite GUI)
DBeaverTümü (All)Çoklu veritabanı desteği (Multi-database support)
bash
# DB Browser kurulumu - Ubuntu (Install DB Browser - Ubuntu)
sudo apt install -y sqlitebrowser

4. Microsoft SQL Server

MSSQL, Microsoft'un kurumsal veritabanı çözümüdür. (MSSQL is Microsoft's enterprise database solution.)

Ubuntu / Linux

bash
# Microsoft GPG anahtarını ekle (Add Microsoft GPG key)
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | \
  sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

# Repository ekle (Add repository) -- Ubuntu 22.04 için
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | \
  sudo tee /etc/apt/sources.list.d/mssql-server-2022.list

# Kur (Install)
sudo apt update
sudo apt install -y mssql-server

# Yapılandırma (Configuration)
sudo /opt/mssql/bin/mssql-conf setup

Yapılandırma sırasında (During configuration):

  • Edition seç: Developer (ücretsiz / free) veya Express (ücretsiz / free)
  • SA şifresini belirle (Set SA password) -- en az 8 karakter, büyük/küçük harf, rakam, özel karakter (at least 8 chars, upper/lower, digit, special char)
bash
# Durum kontrolü (Check status)
sudo systemctl status mssql-server

# sqlcmd aracını kur (Install sqlcmd tool)
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/prod.list | \
  sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo ACCEPT_EULA=Y apt install -y mssql-tools18 unixodbc-dev

# PATH'e ekle (Add to PATH)
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

Windows

  1. SQL Server Downloads sayfasından indir (Download):
    • Developer -- geliştirme için ücretsiz, tam özellikli (free for development, full-featured)
    • Express -- ücretsiz, sınırlı (free, limited)
  2. Kurulum sihirbazını takip et (Follow installation wizard)
  3. SQL Server Management Studio (SSMS) indir ve kur (Download and install SSMS)
powershell
# sqlcmd ile bağlantı testi (Connection test with sqlcmd)
sqlcmd -S localhost -U SA -P "SifreninBuraya"

# Veritabanı oluştur (Create database)
1> CREATE DATABASE ProjemDB;
2> GO

macOS

macOS için native kurulum yoktur. Docker kullanılmalıdır. (No native installation for macOS. Use Docker.)

bash
# Docker ile çalıştır (Run with Docker) -- aşağıdaki Docker bölümüne bakın (see Docker section below)

Docker

bash
# Tek komutla çalıştır (Run with single command)
docker run -d \
  --name mssql-server \
  -e "ACCEPT_EULA=Y" \
  -e "MSSQL_SA_PASSWORD=GucluSifre123!" \
  -e "MSSQL_PID=Developer" \
  -p 1433:1433 \
  -v mssql_data:/var/opt/mssql \
  mcr.microsoft.com/mssql/server:2022-latest

Docker Compose ile (with Docker Compose):

yaml
# docker-compose.yml
services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: mssql-server
    restart: unless-stopped
    environment:
      ACCEPT_EULA: "Y"
      MSSQL_SA_PASSWORD: "GucluSifre123!"
      MSSQL_PID: "Developer"
    ports:
      - "1433:1433"
    volumes:
      - mssql_data:/var/opt/mssql

volumes:
  mssql_data:

sqlcmd Bağlantı Testi (sqlcmd Connection Test)

bash
# Linux/macOS Docker bağlantısı (Linux/macOS Docker connection)
sqlcmd -S localhost -U SA -P "GucluSifre123!" -C

# Veritabanı oluştur (Create database)
1> CREATE DATABASE ProjemDB;
2> GO

# Veritabanlarını listele (List databases)
1> SELECT name FROM sys.databases;
2> GO

# Çıkış (Exit)
1> QUIT

GUI Araçları (GUI Tools)

Araç (Tool)PlatformAçıklama (Description)
SSMSWindowsResmi Microsoft aracı (Official Microsoft tool)
Azure Data StudioTümü (All)Hafif, cross-platform (Lightweight, cross-platform)
DBeaverTümü (All)Ücretsiz, çoklu veritabanı (Free, multi-database)

5. MongoDB

MongoDB, doküman tabanlı NoSQL veritabanıdır. (MongoDB is a document-based NoSQL database.)

Ubuntu / Linux

bash
# MongoDB GPG anahtarını ekle (Add MongoDB GPG key)
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

# Repository ekle (Add repository) -- Ubuntu 22.04
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
  https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | \
  sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# Kur (Install)
sudo apt update
sudo apt install -y mongodb-org

# Servisi başlat (Start service)
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

Windows

  1. MongoDB Community Server sayfasından MSI dosyasını indir (Download MSI)
  2. "Complete" kurulum seçeneğini seç (Select "Complete" setup)
  3. Install MongoDB as a Service kutusunu işaretle (Check the box)
  4. MongoDB Compass kutusunu işaretle (Check the box) -- GUI aracı otomatik kurulur (GUI tool installs automatically)
powershell
# Sürüm kontrolü (Check version)
mongosh --version

# Bağlantı testi (Connection test)
mongosh

macOS

bash
# MongoDB tap ekle (Add MongoDB tap)
brew tap mongodb/brew

# Kur (Install)
brew install mongodb-community@7.0

# Servisi başlat (Start service)
brew services start mongodb-community@7.0

# Bağlantı testi (Connection test)
mongosh

Docker

bash
# Tek komutla çalıştır (Run with single command)
docker run -d \
  --name mongodb-server \
  -e MONGO_INITDB_ROOT_USERNAME=fahri \
  -e MONGO_INITDB_ROOT_PASSWORD=GucluSifre123! \
  -e MONGO_INITDB_DATABASE=proje_db \
  -p 27017:27017 \
  -v mongodb_data:/data/db \
  mongo:7.0

Docker Compose ile (with Docker Compose):

yaml
# docker-compose.yml
services:
  mongodb:
    image: mongo:7.0
    container_name: mongodb-server
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: fahri
      MONGO_INITDB_ROOT_PASSWORD: GucluSifre123!
      MONGO_INITDB_DATABASE: proje_db
    ports:
      - "27017:27017"
    volumes:
      - mongodb_data:/data/db

volumes:
  mongodb_data:

mongosh Bağlantı Testi (mongosh Connection Test)

bash
# Bağlan (Connect) -- kimlik doğrulama ile (with authentication)
mongosh "mongodb://fahri:GucluSifre123!@localhost:27017/proje_db?authSource=admin"

# Veritabanlarını listele (List databases)
show dbs

# Veritabanı seç/oluştur (Select/create database)
use proje_db

# Koleksiyon oluştur ve veri ekle (Create collection and insert data)
db.kullanicilar.insertOne({
    ad: "Fahri",
    email: "fahri@example.com",
    tarih: new Date()
})

# Veriyi sorgula (Query data)
db.kullanicilar.find().pretty()

# Koleksiyonları listele (List collections)
show collections

GUI Araçları (GUI Tools)

Araç (Tool)PlatformAçıklama (Description)
MongoDB CompassTümü (All)Resmi MongoDB GUI aracı (Official MongoDB GUI)
Studio 3TTümü (All)Gelişmiş özellikler, ücretli (Advanced features, paid)
mongoshTerminalResmi MongoDB shell (Official MongoDB shell)

6. Redis (Bonus)

Redis, bellek içi anahtar-değer veri deposudur. Cache, session, kuyruk gibi amaçlarla sıkça kullanılır. (Redis is an in-memory key-value data store. Commonly used for caching, sessions, and queues.)

Ubuntu / Linux

bash
# Kur (Install)
sudo apt update
sudo apt install -y redis-server

# Servisi başlat (Start service)
sudo systemctl start redis-server
sudo systemctl enable redis-server

# Yapılandırma (Configuration) -- isteğe bağlı (optional)
sudo nano /etc/redis/redis.conf
# supervised no -> supervised systemd olarak değiştir (change to supervised systemd)
# requirepass SifreninBuraya -- şifre ekle (add password)

# Değişikliklerden sonra yeniden başlat (Restart after changes)
sudo systemctl restart redis-server

Windows

Windows için native Redis yoktur. İki seçenek (No native Redis for Windows. Two options):

Seçenek 1: WSL kullanarak (Using WSL)

powershell
# WSL'de Ubuntu kur (Install Ubuntu in WSL)
wsl --install

# WSL içinde Redis kur (Install Redis inside WSL)
sudo apt update && sudo apt install -y redis-server
sudo service redis-server start

Seçenek 2: Docker kullanarak (Using Docker) -- aşağıdaki Docker bölümüne bakın (see Docker section below)

macOS

bash
# Homebrew ile kur (Install with Homebrew)
brew install redis

# Servisi başlat (Start service)
brew services start redis

# Bağlantı testi (Connection test)
redis-cli ping
# Beklenen çıktı (Expected output): PONG

Docker

bash
# Tek komutla çalıştır (Run with single command)
docker run -d \
  --name redis-server \
  -p 6379:6379 \
  -v redis_data:/data \
  redis:7-alpine redis-server --requirepass GucluSifre123!

Docker Compose ile (with Docker Compose):

yaml
# docker-compose.yml
services:
  redis:
    image: redis:7-alpine
    container_name: redis-server
    restart: unless-stopped
    command: redis-server --requirepass GucluSifre123!
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

volumes:
  redis_data:

redis-cli Bağlantı Testi (redis-cli Connection Test)

bash
# Bağlan (Connect)
redis-cli

# Şifreli bağlantı (Connect with password)
redis-cli -a GucluSifre123!

# Ping testi (Ping test)
127.0.0.1:6379> PING
# Beklenen çıktı (Expected output): PONG

# Temel işlemler (Basic operations)
127.0.0.1:6379> SET isim "Fahri"
127.0.0.1:6379> GET isim
# "Fahri"

127.0.0.1:6379> SET sayac 100
127.0.0.1:6379> INCR sayac
# (integer) 101

# Süreli anahtar (Key with expiry) -- 60 saniye (60 seconds)
127.0.0.1:6379> SETEX gecici_veri 60 "bu veri 60 saniye sonra silinir"
127.0.0.1:6379> TTL gecici_veri
# (integer) 59

# Tüm anahtarları listele (List all keys)
127.0.0.1:6379> KEYS *

# Çıkış (Exit)
127.0.0.1:6379> QUIT

7. Hızlı Referans Tablosu (Quick Reference Table)

Varsayılan Portlar ve Bağlantı Bilgileri (Default Ports & Connection Info)

Veritabanı (Database)PortVarsayılan Kullanıcı (Default User)Bağlantı Komutu (Connection Command)Docker Image
MySQL3306rootmysql -u root -pmysql:8.0
PostgreSQL5432postgrespsql -U postgrespostgres:16-alpine
SQLite----sqlite3 dosya.db--
MSSQL1433SAsqlcmd -S localhost -U SAmcr.microsoft.com/mssql/server:2022-latest
MongoDB27017--mongoshmongo:7.0
Redis6379--redis-cliredis:7-alpine

Platform Desteği (Platform Support)

Veritabanı (Database)UbuntuWindowsmacOSDocker
MySQLaptMSI Installerbrew
PostgreSQLaptInstallerbrew / Postgres.app
SQLiteaptZIP + PATHYerleşik (Built-in)--
MSSQLapt (MS repo)Installer + SSMSSadece Docker (Docker only)
MongoDBapt (Mongo repo)MSI Installerbrew tap
RedisaptWSL / Dockerbrew

Servis Yönetimi -- Ubuntu (Service Management -- Ubuntu)

bash
# Genel format (General format)
sudo systemctl start   <servis>    # Başlat (Start)
sudo systemctl stop    <servis>    # Durdur (Stop)
sudo systemctl restart <servis>    # Yeniden başlat (Restart)
sudo systemctl status  <servis>    # Durum (Status)
sudo systemctl enable  <servis>    # Otomatik başlat (Enable auto-start)
sudo systemctl disable <servis>    # Otomatik başlatmayı kapat (Disable auto-start)

# Servis adları (Service names)
# MySQL:      mysql
# PostgreSQL: postgresql
# MongoDB:    mongod
# MSSQL:      mssql-server
# Redis:      redis-server

Docker Yönetimi (Docker Management)

bash
# Tüm çalışan konteynerları listele (List running containers)
docker ps

# Konteyner durdur/başlat (Stop/start container)
docker stop  <konteyner_adi>
docker start <konteyner_adi>

# Konteyner loglarını göster (Show container logs)
docker logs <konteyner_adi>

# Konteynere bağlan (Connect to container)
docker exec -it <konteyner_adi> bash

# Tüm servisleri Docker Compose ile yönet (Manage all services with Docker Compose)
docker compose up -d       # Başlat (Start)
docker compose down        # Durdur (Stop)
docker compose ps          # Durum (Status)
docker compose logs -f     # Canlı loglar (Live logs)

Hepsi Bir Arada Docker Compose (All-in-One Docker Compose)

Tüm veritabanlarını tek bir dosya ile çalıştır (Run all databases with a single file):

yaml
# docker-compose.yml
services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: RootSifre123!
      MYSQL_DATABASE: proje_db
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  postgres:
    image: postgres:16-alpine
    container_name: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: fahri
      POSTGRES_PASSWORD: GucluSifre123!
      POSTGRES_DB: proje_db
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  mssql:
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: mssql
    restart: unless-stopped
    environment:
      ACCEPT_EULA: "Y"
      MSSQL_SA_PASSWORD: "GucluSifre123!"
      MSSQL_PID: "Developer"
    ports:
      - "1433:1433"
    volumes:
      - mssql_data:/var/opt/mssql

  mongodb:
    image: mongo:7.0
    container_name: mongodb
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: fahri
      MONGO_INITDB_ROOT_PASSWORD: GucluSifre123!
    ports:
      - "27017:27017"
    volumes:
      - mongodb_data:/data/db

  redis:
    image: redis:7-alpine
    container_name: redis
    restart: unless-stopped
    command: redis-server --requirepass GucluSifre123!
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

volumes:
  mysql_data:
  postgres_data:
  mssql_data:
  mongodb_data:
  redis_data:
bash
# Tümünü başlat (Start all)
docker compose up -d

# Durumları kontrol et (Check status)
docker compose ps

# Tümünü durdur (Stop all)
docker compose down

# Tümünü durdur ve verileri sil (Stop all and remove data)
docker compose down -v

Güvenlik Uyarısı (Security Warning)

Yukarıdaki şifreler örnek amaçlıdır. Üretim ortamında güçlü ve benzersiz şifreler kullanın. (The passwords above are for demonstration purposes. Use strong, unique passwords in production.)

Docker Önerisi (Docker Recommendation)

Geliştirme ortamında tüm veritabanlarını Docker ile çalıştırmak en pratik yöntemdir. Sisteminizi temiz tutar ve kolayca sıfırlanabilir. (Running all databases with Docker in development is the most practical approach. Keeps your system clean and easily resettable.)


İlgili Rehberler

Developer Guides & Technical References