Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

İstemci Bağlantısı

menzelet-cli

MenzeletDB istemcisi, interaktif bir komut satırı arayüzüdür. Sunucuyla TCP üzerinden length-prefix framing protokolü ile haberleşir.

Bağlanma

# Adres belirterek bağlan:
menzelet-cli 127.0.0.1:4600

# Varsayılan adres (menzelet.toml'dan okunur):
menzelet-cli

# Docker container içinden:
docker exec -it menzelet /opt/menzelet/menzelet-cli 127.0.0.1:4600

CLI Bayrakları

BayrakAçıklama
--lang <dil>Arayüz dilini geçersiz kılar (tr, en, es)
--pingSunucu sağlık kontrolü (PING/PONG), hemen çıkar
--helpKullanım bilgisi gösterir

Bağlantı Başarılı Olduğunda

menzelet v0.2.0
Bağlandı: 127.0.0.1:4600
Kimlik doğrulaması için: LOGIN <kullanıcı_adı> <parola>
menzelet>

Kimlik Doğrulama

Her yeni bağlantıda LOGIN komutu zorunludur. Kimlik doğrulamadan önce SQL veya INDEX komutları reddedilir.

menzelet> LOGIN sa güçlüŞifre123
Giriş başarılı. Hoş geldiniz, sa!
menzelet>

Hatalı şifrede bağlantı otomatik olarak kapatılır (güvenlik nedeniyle).

Hızlı Başlangıç Senaryosu

Bağlantı kurduktan ve giriş yaptıktan sonra temel işlemler:

-- Veritabanı oluştur
CREATE DATABASE test_db

-- Veritabanını seç
USE test_db

-- Tablo oluştur
CREATE TABLE musteriler (id INT NOT NULL, ad VARCHAR, sehir VARCHAR)

-- Veri ekle
INSERT INTO musteriler VALUES (1, 'Ahmet', 'İstanbul')
INSERT INTO musteriler VALUES (2, 'Mehmet', 'Ankara')
INSERT INTO musteriler VALUES (3, 'Ayşe', 'İzmir')

-- Sorgula
SELECT * FROM musteriler WHERE sehir = 'İstanbul'

-- Türkçe sıralama
SELECT ad, sehir FROM musteriler ORDER BY collate(ad)

Bağlantıyı Kapatma

menzelet> EXIT

veya QUIT komutu.

Protokol Notu

MenzeletDB, length-prefix framing protokolü kullanır (her mesajın başına 4 byte u32 big-endian uzunluk eklenir). Bu nedenle:

  • telnet ve nc (netcat) gibi satır tabanlı araçlar kullanılamaz
  • Her zaman menzelet-cli ikili dosyası kullanılmalıdır
  • Sağlık kontrolü için: menzelet-cli --ping