MySQL インターフェース
ClickHouse は MySQL ワイヤープロトコルをサポートしています。これにより、ネイティブな ClickHouse コネクタを持たない特定のクライアントが代わりに MySQL プロトコルを利用でき、以下の BI ツールで検証済みです。
他の未検証のクライアントまたは統合を試している場合、次の制限がある可能性があることに留意してください。
- SSL 実装が完全には互換性がない可能性があり、潜在的な TLS SNI の問題が発生することがあります。
- 特定のツールには、未実装の方言機能(例:MySQL 特有の関数や設定)が必要な場合があります。
ネイティブドライバー(例:DBeaver)が利用可能な場合、MySQL インターフェースよりもこちらを使用することを常に推奨します。また、ほとんどの MySQL 言語クライアントは問題なく動作するはずですが、MySQL インターフェースが既存の MySQL クエリのコードベースに対してそのまま置き換えられることが保証されるわけではありません。
特定のツールがネイティブな ClickHouse ドライバーを持たず、MySQL インターフェースを介して使用したい場合に特定の非互換性が見つかった場合は、問題を作成してください ClickHouse リポジトリで。
上記の BI ツールの SQL 方言をよりよくサポートするために、ClickHouse の MySQL インターフェースは暗黙的に設定 prefer_column_name_to_alias = 1 で SELECT クエリを実行します。 これは無効にすることができず、稀なエッジケースでは、ClickHouse の通常のクエリインターフェースと MySQL クエリインターフェースに送信されたクエリ間で異なる動作を引き起こす可能性があります。
ClickHouse Cloud での MySQL インターフェースの有効化
- ClickHouse Cloud サービスを作成した後、
Connect
ボタンをクリックします。

Connect with
ドロップダウンをMySQL
に変更します。

- この特定のサービスの MySQL インターフェースを有効にするためにスイッチを切り替えます。これにより、このサービスのためにポート
3306
が公開され、ユニークな MySQL ユーザー名を含む MySQL 接続画面が表示されます。パスワードはサービスのデフォルトユーザーのパスワードと同じです。

表示される MySQL 接続文字列をコピーします。

ClickHouse Cloud での複数の MySQL ユーザーの作成
デフォルトでは、mysql4<subdomain>
ユーザーが組み込まれており、default
と同じパスワードを使用します。<subdomain>
部分は、ClickHouse Cloud ホスト名の最初のセグメントです。この形式は、安全な接続を実装するツールと連携するために必要ですが、TLS ハンドシェイクで SNI 情報を提供しない ツールとの内部ルーティングを行うためには、ユーザー名に追加のヒントが必要です(MySQL コンソールクライアントはそのようなツールの一つです)。
そのため、MySQL インターフェースで使用する新しいユーザーを作成する際には、mysql4<subdomain>_<username>
形式に従うことを 強く推奨 します。ここで、<subdomain>
は Cloud サービスを識別するためのヒントで、<username>
は任意のサフィックスです。
ClickHouse Cloud のホスト名が foobar.us-east1.aws.clickhouse.cloud
の場合、<subdomain>
部分は foobar
に等しく、カスタム MySQL ユーザー名は mysql4foobar_team1
のようになります。
MySQL インターフェースで使用するために追加のユーザーを作成できます。たとえば、追加の設定を適用する必要がある場合です。
- オプション - カスタムユーザーに適用するための 設定プロファイル を作成します。たとえば、以下のように、後で作成するユーザーで接続する際にデフォルトで適用される追加の設定を持つ
my_custom_profile
を作成します。
prefer_column_name_to_alias
は単なる例として使用されているので、他の設定を使用することもできます。
2. 以下の形式で ユーザー を作成します: mysql4<subdomain>_<username>
(上記を参照)。パスワードはダブル SHA1 形式でなければなりません。例えば:
または、このユーザーにカスタムプロファイルを使用したい場合は:
ここで、my_custom_profile
は先に作成したプロファイルの名前です。
3. Grant を使用して、新しいユーザーが目的のテーブルやデータベースと対話するために必要な権限を付与します。たとえば、system.query_log
へのアクセスを許可したい場合:
- 作成したユーザーを使用して、MySQL インターフェースで ClickHouse Cloud サービスに接続します。
ClickHouse Cloud における複数の MySQL ユーザーのトラブルシューティング
新しい MySQL ユーザーを作成し、MySQL CLI クライアントを介して接続する際に次のエラーが表示される場合:
この場合、ユーザー名が mysql4<subdomain>_<username>
形式に従っていることを確認してください。(上記を参照)。
セルフマネージド ClickHouse での MySQL インターフェースの有効化
サーバーの構成ファイルに mysql_port 設定を追加します。たとえば、config.d/
フォルダ に新しい XML ファイルでポートを定義することができます:
ClickHouse サーバーを起動し、MySQL 互換プロトコルのリスニングに関するメッセージがログに表示されるかどうかを確認します:
MySQL を ClickHouse に接続する
以下のコマンドは、MySQL クライアント mysql
を ClickHouse に接続する方法を示しています:
例:
接続が成功した場合の出力:
すべての MySQL クライアントとの互換性のため、構成ファイルで ダブル SHA1 でユーザーパスワードを指定することをお勧めします。 ユーザーパスワードが SHA256 を使用して指定された場合、一部のクライアントは認証に失敗する場合があります(mysqljs および古いバージョンのコマンドラインツール MySQL および MariaDB)。
制限:
-
プレペアードクエリはサポートされていません
-
一部のデータ型は文字列として送信されます
長いクエリをキャンセルするには、KILL QUERY connection_id
ステートメントを使用します(処理中は KILL QUERY WHERE query_id = connection_id
に置き換えられます)。例: