> ## 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.

# このチュートリアル用のサーバーをインストールする

> このチュートリアルのすべてのレッスンには、動作中の MySQL または VillageSQL サーバーが必要です。3 つの方法から 1 つを選んで用意し、接続できることを確認します。

> [card] [VillageSQL is a drop-in replacement for MySQL with extensions.](https://villagesql.com/docs/en/8.4/stable/install-server.md)
>
> All examples on this page work on VillageSQL. Install Now →

動作中のサーバーと、それと通信できるクライアントが必要です。MySQL 8.4 以降の
サーバーならどれでも動作し、VillageSQL でも動作します。VillageSQL は MySQL に
拡張フレームワークを追加したものです。ここのレッスンは拡張を使わないので、
どちらでも構いません。

## サーバーを動かす方法を選ぶ

| 方法 | 向いている人 | 参照先 |
| - | - | - |
| Docker | 試してみて、使い捨てにしたい | [Docker 上の MySQL](https://villagesql.com/docs/ja/guides/mysql-on-docker.md) |
| VillageSQL インストーラー | 自分のマシンに置いておくサーバーが欲しい | [インストール](https://villagesql.com/docs/ja/8.4/stable/install-server.md) |
| 既に動かしているサーバー | MySQL 8.4 以降をインストール済みの人 | 何もする必要はありません |

いずれのページも、動作中のサーバーがある状態で終わります。サーバーが用意
できたらここに戻ってきてください。

## クライアントを用意する

このチュートリアルはコマンドラインクライアントの `mysql` でサーバーを操作
します。それがどこから来るかは、選んだ方法によって異なります。

* **インストーラー。** インストーラーはクライアントを `~/.villagesql/` に
  置きますが、`PATH` には追加しません。`~/.villagesql/credentials.txt` に
  保存されている `Connect` コマンドを実行し(root のパスワードも同じファイルに
  あります)、次に下のコマンドの代わりに `mysql>` プロンプトで
  `SELECT VERSION();` を実行してください。
* **既存のサーバー。** クライアントはサーバーと一緒に付いてきたので、既に
  持っています。
* **Docker。** クライアントは自分のマシンではなくコンテナの中にあります。
  `docker exec -it CONTAINER_NAME mysql -u root -p` でアクセスするか、クライアントを
  ローカルにインストールして、コンテナが公開するポート経由で接続してください。

## 接続できることを確認する

これを実行し、`root` にパスワードがなければパスワードプロンプトで Return を
押してください。

```bash theme={null}
mysql -u root -p -e "SELECT VERSION();"
```

```text theme={null}
Enter password:
+-----------------------------------------+
| VERSION()                               |
+-----------------------------------------+
| 8.4.11-villagesql-0.0.7-dev-c857bdf32ce |
+-----------------------------------------+
```

バージョン文字列は異なるはずです。重要なのはバージョンが返ってきたことです。
それはクライアントがサーバーに到達してログインしたことを意味するからです。

## 接続できないとき

下の 2 つのエラーはどちらも、クライアントがサーバーにまったく到達しなかった
ことを意味するので、どちらもパスワードの問題ではありません。正常に動作する
環境でも、クライアントを誤った場所に向ければどちらも再現できます。

その先に何もないソケットパス。

```bash theme={null}
mysql -S /tmp/mysql.sock.missing -u root -p -e "SELECT VERSION();"
```

```text theme={null}
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock.missing' (2)
```

何も待ち受けていないポート。

```bash theme={null}
mysql -h 127.0.0.1 -P 3999 -u root -p -e "SELECT VERSION();"
```

```text theme={null}
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:3999' (61)
```

末尾の括弧内の数字はオペレーティングシステム自身のエラー番号なので、macOS と
Linux で異なることがあります。ソケットが見つからない場合の番号はどちらも 2
です。接続が拒否された場合の番号は macOS では 61、Linux では 111 です。読む
べき部分はソケットパス、またはホストとポートです。それがクライアントがどこを
探したかを教えてくれるからです。その場所が間違っていれば直してください。
正しければ、サーバーが動いていません。

## 関連項目

* [インストール](https://villagesql.com/docs/ja/8.4/stable/install-server.md) — VillageSQL をインストールして接続する
* [Docker 上の MySQL](https://villagesql.com/docs/ja/guides/mysql-on-docker.md) — コンテナでサーバーを動かす
* [MySQL のよくあるエラー](https://villagesql.com/docs/ja/guides/common-mysql-errors.md) — 他の接続エラーの意味


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.