はじめに
みなさんTiDBに接続する際には何を使っていますか?
TiDB Cloudの接続時に接続方法が表示されるMySQL clientやMyCLIなどのコマンドラインクライアントももちろんですが、GUIクライアントでの接続も多いのではないかと思います。
TiDB Serverlessに接続する際にはTLS接続が必須となるため、クライアントによってはTLSの設定に何を設定すれば良いか困るケースもあります。ここでは、いくつかの代表的なGUIクライアントの接続方法を見ていきたいと思います。
CAファイルの取得
つい先日のアップデートで、TiDB Serverlessの接続画面からCAファイルがダウンロードできるようになりました!
TiDB Serverlessの接続画面で、Operating System
でWindowsを選択してください。
このときに表示されるリンクから、CAファイルがダウンロード可能です。
CAファイルの取得(従来の方法)
以下の記載は古い方法ですが、参考の為残しておきます
ドキュメントに記載されているように、TiDB Serverlessのサーバ証明書はLet's Encryptが発行しているものを利用しているので、下記のファイルをダウンロードしておきます。
- Mozilla CA証明書バンドル: リンク先の cacert.pem からダウンロード
Mozillaのバンドルには複数のルート証明書が含まれているのでドキュメントではそちらを推奨していますが、複数の証明書が含まれているのを許容しないようなクライアントでは ISRG Root X1の方を使うようにと記載してあります。
ただ今回紹介するクライアントはすべてMozilla CA証明書バンドルを受け付けましたので、cacert.pemだけで問題ありません。
DBeaver (Mac/Linux/Windows)
クロスプラットフォームで動作するクライアントで、MySQL系以外にもさまざまなデータベースをサポートしています。
接続設定
TiDBもサポートされています。データベース接続画面からTiDBを選択。
接続設定ではホスト
、データベース
、ユーザー名
、パスワード
を指定。ポートは最初から4000になっているのでそのまま
SSLタブで、SSLを使用する
にチェックを入れ、CA Certificate
に、ダウンロードしたCA証明書バンドルを指定します。
これでOKです。
VSCode (SQLTools) (Mac/Linux/Windows)
VSCode上からデータベースに接続できるプラグインの中から、今回はSQL Toolsを取り上げます。
データベース毎のドライバがあり、ドライバをインストールすることで様々なデータベースに接続できるようになっています。
拡張機能のインストール
VSCodeの拡張機能管理画面から、SQLTools
と SQLTools MySQL/MariaDB/TiDB
をインストールします
接続設定
拡張機能をインストールすると、左側にアイコンができるのでそれをクリックし、New Connection
から接続設定を行います。
はじめにTiDBを選択し、
Connection name
(何でも良い)、Server Address
、Port
、Database
、Username
をセットします。パスワードは後から聞かれます。
画面を下にスクロールして、SSLをEnable
にして、証明書バンドルのパスを設定します。
Test Connection時にパスワードの入力を求められるのでパスワードを入力すればOKです。
HeidiSQL (Windows)
Windowsで動作するGUIクライアントです。様々なDBに接続できます。
TiDB接続用の設定はなく、MySQL/MariaDBとして接続します。
接続設定
ドライバとしてMySQL/MariaDBを選択し、Hostname
、User
、Password
、Port
を設定します。
SSLタブで、SSLの有効化と証明書バンドルのパスを設定します。
Sequel Ace (Mac)
Macで動作するGUIクライアントです。MySQL/MariaDB用です。
接続設定
Host
、Username
、Password
、Database
、Port
を設定して、Require SSL
にチェックを入れます。
CA Cert
に証明書バンドルのパスを設定します。