> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 拡張機能のインストール

> 拡張機能を使用して、VillageSQLに新しい機能を追加する方法。

拡張機能を使用して、カスタムの型、関数、および機能をデータベースに追加して、VillageSQLをインストールします。

## コマンド構文

```sql theme={null}
INSTALL EXTENSION extension_name;
```

<Info>
  拡張機能は、コンパイルされたライブラリとメタデータを含む`.veb`（VillageSQL拡張機能バンドル）ファイルとして配布されます。
</Info>

<h3 id="extension-naming-conventions">
  拡張機能の命名規則
</h3>

VillageSQLは、異なるコンテキストで異なる命名規則を使用します。

* **SQLコマンド:** アンダースコアを使用します: `INSTALL EXTENSION vsql_uuid`
* **リポジトリ名:** ハイフンを使用します: `github.com/villagesql/vsql-uuid`
* **ファイル名:** アンダースコアを使用します: `vsql_uuid.veb`
* **manifest.json:** SQLと一致するようにアンダースコアを使用します: `"name": "vsql_uuid"`

**例:**

```bash theme={null}
# Clone from GitHub repo (hyphens in URL)
git clone https://github.com/villagesql/vsql-uuid

# But .veb file uses underscores
ls vsql_uuid.veb

# Install with underscores (no quotes)
INSTALL EXTENSION vsql_uuid;
```

## 前提条件

* 実行中のVillageSQLサーバーインスタンス
* 管理者権限（rootまたは同等の権限）

## 組み込み拡張機能のインストール

VillageSQLに付属する組み込み拡張機能は、すでに`veb_dir`にあります。単に有効にするだけです。

```sql theme={null}
-- Connect to VillageSQL
mysql -u root -p

-- Install the extension
INSTALL EXTENSION vsql_complex;
```

### インストールの確認

```sql theme={null}
-- List installed extensions
SELECT * FROM INFORMATION_SCHEMA.EXTENSIONS;
```

**出力:**

```
+------------------+-------------------+
| EXTENSION_NAME   | EXTENSION_VERSION |
+------------------+-------------------+
| vsql_complex     | 0.0.1             |
+------------------+-------------------+
```

### 機能のテスト

```sql theme={null}
-- Create a database first
CREATE DATABASE test_db;
USE test_db;

-- Test extension functions
CREATE TABLE test (id INT, value COMPLEX);
INSERT INTO test VALUES (1, '(3,4)');
SELECT complex_abs(value) FROM test;  -- Returns 5.0

-- Clean up
DROP TABLE test;
DROP DATABASE test_db;
```

## 外部拡張機能のインストール

別途ダウンロードまたは構築された拡張機能の場合:

<Info>
  外部拡張機能をインストールする前に、サーバーで`veb_dir`を構成する必要があります。 [veb\_dirの構成](/docs/ja/mysql-8.4/0.0.4/managing#configuring-veb_dir)を参照してください。
</Info>

### 1. .vebファイルのコピー

サーバーの拡張機能ディレクトリを見つけて、`.veb`ファイルをコピーします。

```sql theme={null}
-- Find the extension directory
SHOW VARIABLES LIKE 'veb_dir';
```

```bash theme={null}
cp /path/to/my_extension.veb /path/to/veb_dir/
```

### 2. 拡張機能のインストール

```sql theme={null}
INSTALL EXTENSION my_extension;
```

### 3. インストールの確認

```sql theme={null}
SELECT * FROM INFORMATION_SCHEMA.EXTENSIONS WHERE EXTENSION_NAME = 'my_extension';
```

## トラブルシューティング

| 問題                            | 解決策                                                              |
| ----------------------------- | ---------------------------------------------------------------- |
| `拡張機能が見つかりません`                | `.veb`ファイルが`veb_dir`にあることを確認します: `SHOW VARIABLES LIKE 'veb_dir'` |
| `アクセスが拒否されました`                | ファイルのアクセス許可を確認します: `chmod 644 extension.veb`                     |
| `拡張機能名の不一致`                   | 拡張機能の内部名が`.veb`ファイル名と一致しません。拡張機能を再構築します。                         |
| `vef_registerが見つかりません`        | `.veb`ファイルが有効なVEFエントリポイントをエクスポートしていません。正しいSDKに対して再構築します。         |
| `vef_registerがエラーを返しました: ...` | 拡張機能の登録に失敗しました。添付されたメッセージを読んで詳細を確認してください。                        |

さらにトラブルシューティングについては、[拡張機能の管理](/docs/ja/mysql-8.4/0.0.4/managing)を参照してください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="拡張機能の管理" icon="sliders" href="/docs/ja/mysql-8.4/0.0.4/managing">
    インストールされた拡張機能を監視およびトラブルシューティングします。
  </Card>

  <Card title="利用可能な拡張機能" icon="list" href="/docs/ja/extensions">
    インストールできる拡張機能を参照します。
  </Card>

  <Card title="拡張機能の作成" icon="code" href="/docs/ja/mysql-8.4/0.0.4/create">
    独自の拡張機能を構築します。
  </Card>
</CardGroup>
