Skip to content

クイックスタート

最小構成で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からダウンロードしてインストール:

bash
sudo rpm -i mygramdb-*.el9.x86_64.rpm

Docker

bash
docker pull ghcr.io/libraz/mygram-db:latest

最小構成

/etc/mygramdb/config.yamlを作成:

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/810. で始まるプライベートネットワーク全体を意味します。

サービスを開始

bash
sudo systemctl enable --now mygramdb

動作確認

bash
# 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> 形式で指定します。

次のステップ

詳細ドキュメント