ステップ 1: VillageSQL のインストール
オプション A: Docker (推奨)
ホスト側にインストールすることなく、コンテナで VillageSQL を実行します。uname から読み取ります。PowerShell では、サフィックスを自分で指定してください。Intel と AMD では -amd64、ARM では -arm64 です。
オプション B: シェルスクリプト
公式のインストールスクリプトを使用して、マシンに VillageSQL を直接インストールします。これにより、サーバーバイナリがダウンロードされ、プラットフォーム用に構成されます。bash 側に指定してください。
VSQL_CODEBASE は mysql-8.4、percona-8.4、mysql-9.7 を受け付けます。INSTALL_METHOD は docker、prebuilt、source を受け付けます。ソースビルドでは VSQL_VERSION=stable|nightly|latest も使えます。Docker とビルド済みバイナリのインストールは、常に安定版リリースです。
スクリプトを実行する前に確認するには: curl -fsSL https://install.villagesql.com | less
オプション C: ソースコードからのビルド
開発またはカスタムビルドの場合は、ソースコードからのクローンとビルドガイドに従って、最新のコードからコンパイルします。シェルスクリプトがセットアップする内容
シェルスクリプト (オプション B) は、すべてを~/.villagesql/ の下にインストールし、ポート 3306 でサーバーを起動します。重要な場所は次のとおりです。
~/.local/bin が PATH に含まれている場合、スクリプトはショートカットも追加します: villagesql (クライアント)、villagesql-server (サーバー)、villagesql-admin (管理ツール)。
Docker (オプション A) と手動のソースビルドは ~/.villagesql/ を作成しません。Docker はデータをコンテナ内に保持します。
ステップ 2: サーバーへの接続
任意の標準の MySQL クライアントを使用して接続します。デフォルトのlocalhost ではなく -h 127.0.0.1 を使用してください。localhost を指定するとクライアントは Unix ソケットを探しますが、サーバーが Docker で実行されている場合はそのソケットに到達できないため、TCP 経由で接続します。
- Docker (オプション A): コンテナは root パスワードが空の状態で起動します。パスワードのプロンプトでは Enter キーを押してください。
- シェルスクリプト (オプション B): 生成された root パスワードは
~/.villagesql/credentials.txtに保存されています。
ステップ 3: 最初の拡張機能のインストール
INSTALL EXTENSION <name> は、サーバーの VEB ディレクトリ内で <name>.veb を探します。その場所を確認するには SHOW VARIABLES LIKE 'veb_dir'; を実行してください。
Docker(オプション A)またはシェルスクリプト(オプション B)でインストールした場合、.veb ファイル一式はすでに veb_dir に配置されています。ダウンロードやコピーは不要です。そこには 2 種類の拡張機能が含まれています。
- 拡張機能。
vsql_uuid(UUID 型と生成関数)や、バンドルされた拡張機能の一覧に載っているその他の拡張機能がこれにあたります。 vsql_complexとvsql_simple。拡張機能フレームワークの仕組みを示すために本ドキュメントの他の箇所(「C++ 拡張の例」を参照)で使われるリファレンス拡張機能です。
vsql_complex と vsql_simple はすでに veb_dir にあります。make install がこれらを無条件にビルドするためです。一方、vsql_uuid をはじめとするその他の拡張機能はそうではありません。これらは別のリポジトリで管理されており、個別にビルドしてインストールする必要があります。オプション C を使った場合は、続ける前に vsql-uuid をクローンしてビルドするか、代わりに vsql_complex を使ってこの先に進んでください。詳しくは「拡張機能のインストール」を参照してください。
vsql_uuid 拡張機能をインストールして、ネイティブな UUID 生成と UUID 列型を追加します。
vsql_uuid がリストされているはずです。
詳細については、拡張機能のインストール を参照してください。
ステップ 4: 拡張データ型の使用
拡張機能がアクティブになったので、テーブルでUUID 型をネイティブ型と同様に使用できます。標準の各バージョン用のジェネレーター — UUID_V1()、UUID_V1MC()、UUID_V3()、UUID_V4()、UUID_V5()、UUID_V6()、UUID_V7() (UUID_V2() は存在しません) — に加えて、格納された値を調べる関数も使用できます。以下の例では v7 を使用します。v7 の値は埋め込まれたタイムスタンプを持ち、1 ミリ秒を超える間隔で生成された場合は作成時刻順にソートされます。同じミリ秒内に生成された値は、呼び出し順ではなくランダムビットによって順序付けられます。つまり、BINARY(16) の生成を自分で書くことなく、シーケンシャルに扱いやすいキーが得られます。
サーバーの停止と再起動
サーバーの停止と起動は、そのコンテナ (Docker) またはバックグラウンドプロセス (シェルインストール) を制御することで行います。データベースはそれに合わせて起動および停止します。- Docker (オプション A):
docker stop vsqlでサーバーを停止し、docker start vsqlで再び起動します。 - シェルスクリプト (オプション B): データディレクトリ、ソケット、ポートがすでに設定された、お使いのインストール用の起動、停止、接続の各コマンドは
~/.villagesql/credentials.txtにあります。
次のステップ
VillageSQL を起動し、拡張機能システムを検証したので、さらに詳しく調べてみましょう。拡張機能の管理
他の拡張機能をインストールおよび管理する方法を学びます。
拡張機能の作成
VillageSQL 用に独自の拡張機能を作成する方法を学びます。
アップグレードガイド
以前のバージョンからのアップグレード、または MySQL からの移行。
トラブルシューティング
サーバーが起動しない
一般的な問題:- ポート 3306 がすでに使用されている: 別のポートを使用するようにサーバーを構成してください。
- 権限: ファイルが読み取り/実行可能であることを確認します。

