# MySQL経由でEMQX Tablesに接続する

EMQX TablesはMySQLサーバークライアントプロトコルをサポートしており、ユーザーやアプリケーションが時系列データのクエリや管理のために直接接続できます。

このインターフェースはほとんどの標準的なMySQLクライアントおよびドライバーと完全に互換性があります。BIツールやカスタムアプリケーションとの統合、またはプログラムからのSQLクエリ実行に便利です。

すべての接続はTLSで暗号化されており、安全なデータ伝送が保証されています。

## 接続パラメータ

MySQLプロトコルでEMQX Tablesに接続するには、以下の情報を使用してください。

> これらの認証情報は、ConsoleのEMQX Tablesの**デプロイメント概要**ページで確認できます。

- **ホスト**: `{YOUR_EMQX_TABLES_PUBLIC_HOST}`
- **ポート**: `4002`
- **データベース**: `{YOUR_EMQX_TABLES_DB_NAME}`
- **ユーザー名**: `{YOUR_EMQX_TABLES_USERNAME}`
- **パスワード**: `{YOUR_EMQX_TABLES_PASSWORD}`

## CLIから接続する

### MySQL CLI

標準のMySQLクライアントを使用して接続できます。

```shell
mysql --ssl-mode=REQUIRED -u {USER} -p -h {HOST} -P 4002 -A {DB_NAME}
```

:::tip バージョン互換性

MySQLクライアントのバージョンが9.0以降の場合、`mysql_native_password`プラグインの削除により接続が失敗することがあります（エラー2059）。

MySQL 8.0クライアントの使用を推奨します。あるいは、以下のDockerコマンド（mysql:8.0イメージ使用）で接続テストが可能です。

```bash
docker run -it --rm mysql:8.0 mysql --ssl-mode=REQUIRED -h {HOST} -P 4002 -u {USER} -p
```

:::

### MariaDB CLI

MariaDBのCLIも類似の構文をサポートしており、SSLフラグが若干異なります。

```shell
mysql --ssl -u {USER} -p -h {HOST} -P 4002 -A {DB_NAME}
```

## アプリケーションから接続する

### JDBC接続文字列

JavaやBIツールから接続する場合は、以下のJDBC URL形式を使用してください。

```text
jdbc:mysql://{HOST}:4002/{DB_NAME}?user={USER}&password=~~{PASSWORD}~~
```

### Pythonやその他のクライアント

PythonやMySQL互換ライブラリを使用する他の言語の場合は、以下のURL形式を使用してください。

```text
mysql://{USER}:~~{PASSWORD}~~@{HOST}:4002/{DB_NAME}
```
