İ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ı
| Bayrak | Açıklama |
|---|---|
--lang <dil> | Arayüz dilini geçersiz kılar (tr, en, es) |
--ping | Sunucu sağlık kontrolü (PING/PONG), hemen çıkar |
--help | Kullanı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:
telnetvenc(netcat) gibi satır tabanlı araçlar kullanılamaz- Her zaman
menzelet-cliikili dosyası kullanılmalıdır - Sağlık kontrolü için:
menzelet-cli --ping