MySQL インターフェース
ClickHouse は MySQL ワイヤプロトコルをサポートしています。これにより、ネイティブの ClickHouse コネクタを持たない特定のクライアントが代わりに MySQL プロトコルを利用できるようになり、以下の BI ツールで検証されています:
他の未検証のクライアントや統合を試す場合、以下の制限に注意してください:
- SSL の実装が完全に互換性がない可能性があり、潜在的な TLS SNI 問題があるかもしれません。
- 特定のツールが、まだ実装されていないダイアレクト機能(例えば、MySQL 特有の関数や設定)を必要とする場合があります。
もしネイティブドライバーが利用可能な場合(例えば、DBeaver)、MySQL インターフェースではなく、それを使用することを常にお勧めします。加えて、ほとんどの MySQL 言語クライアントは正常に動作するはずですが、MySQL インターフェースが既存の MySQL クエリを含むコードベースのドロップイン置き換えであることは保証されません。
特定のツールがネイティブの ClickHouse ドライバーを持たず、そのツールを MySQL インターフェース経由で使用したいが、特定の互換性のない点を見つけた場合は、issue を作成してください。
上記の 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>
はクラウドサービスを識別するためのヒントであり、<username>
は任意の接尾辞です。
ClickHouse Cloud ホスト名が foobar.us-east1.aws.clickhouse.cloud
の場合、<subdomain>
部分は foobar
に等しく、カスタム MySQL ユーザー名は mysql4foobar_team1
のようになります。
MySQL インターフェースで使用するために、追加のユーザーを作成できます。たとえば、追加の設定を適用する必要がある場合です。
-
あなたのカスタムユーザーに適用する 設定プロファイル をオプションとして作成します。たとえば、接続時にデフォルトで適用される追加の設定を持つ
my_custom_profile
を作成します:prefer_column_name_to_alias
はあくまで例として使用されており、他の設定も利用できます。 -
次の形式を使用して ユーザーを作成 します:
mysql4<subdomain>_<username>
(上記を参照)。パスワードはダブル SHA1 形式で指定する必要があります。たとえば:あるいは、このユーザー用にカスタムプロファイルを使用したい場合:
ここで
my_custom_profile
は、先に作成したプロファイルの名前です。 -
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
に置き換えられます)を使用します。たとえば: