クイックスタート
最小構成でMygramDBを起動し、MySQL上の既存データを読み込んで検索できるところまで確認します。
前提条件
- GTIDが有効なMySQL 8.4/9.x、またはMariaDB 10.6+/11.x
- RHEL/AlmaLinux/Rocky Linux 9、Ubuntu 22.04/24.04、またはDocker
用語補足
GTID はMySQLの変更履歴に付く一意な番号です。MygramDBはGTIDを使って、再起動後も「どこまでMySQLの変更を読んだか」を正確に引き継ぎます。
MySQL側の準備も必要です
MygramDBはMySQL / MariaDBのbinlogを読むため、MySQL側でGTID、ROW形式binlog、binlog_row_image=FULL、レプリケーションユーザー、対象テーブルへの SELECT 権限を用意してください。詳しい設定はMySQLレプリケーションを参照してください。
インストール
RPM(RHEL/AlmaLinux/Rocky Linux 9)
GitHub Releasesからダウンロードしてインストール:
sudo rpm -i mygramdb-*.el9.x86_64.rpmDocker
docker pull ghcr.io/libraz/mygram-db:latest最小構成
/etc/mygramdb/config.yamlを作成:
mysql:
host: "localhost"
port: 3306
user: "mygramdb"
password: "your_password"
database: "myapp"
tables:
- name: "articles"
text_source:
column: "content"
primary_key: "id"
replication:
server_id: 83917
api:
tcp:
port: 11016
http:
enable: true
port: 8080
# localhostからの接続を許可
network:
allow_cidrs:
- "127.0.0.1/32"allow_cidrs は必須
allow_cidrsの設定は必須です。設定がない場合、すべての接続が拒否されます。接続元のIPアドレスをリストに追加してください。
用語補足
CIDR はIPアドレスの範囲指定です。127.0.0.1/32 はローカルホストのみ、10.0.0.0/8 は 10. で始まるプライベートネットワーク全体を意味します。
サービスを開始
sudo systemctl enable --now mygramdb動作確認
# CLIで接続
mygram-cli -h localhost -p 11016接続後、まず初回同期を実行します。SYNC はMySQLの既存行を読み込み、検索インデックスを作成します。
mygram> SYNC articles
OK SYNC STARTED articles
mygram> SYNC STATUS
OK SYNC STATUS
...同期が完了したら検索クエリを実行します。
mygram> SEARCH articles hello world
OK RESULTS 3 101 205 387結果が0件になる場合
SYNC STATUS で同期状態を確認し、MySQL側に検索語を含む行があるか、設定の text_source.column が正しいかを確認してください。複数DB構成では SEARCH app_db.articles hello world のように <database>.<table> 形式で指定します。