本記事では、OBClientを使用してOceanBaseデータベースのMySQLテナントに接続するための前提条件、接続操作、および例について説明します。
前提条件
OBClientアプリケーションをダウンロードし、インストール済みであることを確認してください。OBClientアプリケーションをダウンロードしていない場合は、ソフトウェアセンターにアクセスして、対応するバージョンのOBClientをダウンロードできます。
テナントに接続する前に、現在のクライアントがテナントのホワイトリストに含まれていることを確認してください。テナントのホワイトリストの確認および設定の具体的な操作については、テナントのホワイトリストの確認と設定を参照してください。
接続操作
ODPを介した接続方式
OBClientクライアントコマンドを使用して、OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)を介してOceanBaseデータベースに接続する形式は以下のとおりです:
obclient -h$host -P$port -u$user_name -p****** [-c] [-A] [$database_name]
パラメータ説明:
-h:OceanBaseデータベースの接続IPを指定します。$hostは実際のIPに置き換えてください。ODPを介した接続方式では、ODPのアドレスを指定する必要があります。-P:OceanBaseデータベースの接続ポートを指定します。$portは実際のポート番号に置き換えてください。ODPを介した接続方式のデフォルトポートは2883ですが、ODPのデプロイ時にカスタマイズ可能です。-u:OceanBaseデータベースの接続アカウントを指定します。$user_nameの形式は以下のとおりです:ユーザー名@テナント名#クラスタ名、クラスタ名:テナント名:ユーザー名、クラスタ名-テナント名-ユーザー名、またはクラスタ名.テナント名.ユーザー名。MySQLテナントの管理者ユーザー名はデフォルトでrootです。説明
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
まず、直接接続方式でOceanBaseデータベースに接続します。次に、SHOW PARAMETERS LIKE 'cluster';コマンドを実行してクラスタ名を取得します。このコマンドの結果で、VALUEの値がOceanBaseクラスタの名前に対応します。 - ODPが複数のクラスタをプロキシしている場合、接続時にクラスタ名を指定する必要があります。ODPが単一のクラスタのみをプロキシしている場合、接続時にクラスタ名を指定する必要はありません。
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。説明
セキュリティ上の理由から、特にスクリプトや履歴が参照可能な環境では、コマンドラインに直接パスワードを入力することは推奨されません。このオプションを省略し、プロンプトが表示されたときにパスワードを入力することをお勧めします。
-c:オプションです。OBClientの実行環境でコメントを無視しないようにします。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。OBClientがデータベースに接続する際に統計情報を自動取得しないようにします。$database_name:オプションです。OceanBaseデータベースに接続後に使用するデフォルトのデータベースを指定します。指定しない場合、デフォルトではどのデータベースにも直接入らず、接続後に手動で選択する必要があります。
例:
obclient -h10.10.10.1 -P2883 -uuser001@obtenant#obdemo -p****** -c -A oceanbase
ODPを使用したSERVICE_NAME経由での接続方法
OceanBaseデータベースは、ODPのIP:PORTとSERVICE_NAMEを指定してログインすることをサポートしています。指定されたSERVICE_NAMEに基づき、ODPは接続文字列を-uuser_name@プライマリテナント名#プライマリテナントが存在するクラスタに変換します。ユーザーはプライマリ/スタンバイ切り替え後に接続文字列を手動で変更する必要はありません。SERVICE_NAMEの作成に関する情報については、サービスの作成を参照してください。
注意
この機能はOceanBaseクラウドプラットフォーム(OceanBase Cloud Platform, OCP)に依存しています。OCPはV4.3.1以降のバージョンである必要があり、OceanBaseクラスタがOCPによって管理されている場合にのみ正常に使用できます。
ODPを使用してSERVICE_NAME経由でOceanBaseデータベースに接続する形式は以下のとおりです:
obclient -h$host -P$port -u$user_name@SERVICE:$service_name -p******
パラメータ説明:
$host:ODPのIPアドレス。$port:ODPのポート番号。$user_name:ユーザー名。$service_name: サービス名。-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。
例:
obclient -h10.10.10.1 -P2883 -uuser001@SERVICE:service_mysql001 -p******
直接接続方式
OBClientクライアントコマンドを使用して、直接接続方式でOceanBaseデータベースに接続する形式は以下のとおりです:
obclient -h$host -P$port -u$user_name -p****** [-c] [-A] [$database_name]
パラメータ説明:
-h:OceanBaseデータベースの接続IPを指定します。$hostは実際のIPに置き換えてください。直接接続方式では通常、OBServerノードのIPアドレスを使用します。注意
一般テナントが直接接続方式で接続する場合、そのテナントのリソースがそのOBServerノード上に分散配置されていることを確認する必要があります。テナントのリソースがそのOBServerノード上に配置されていない場合、そのOBServerノードに直接接続してもそのテナントには接続できません。
-P:OceanBaseデータベースの接続ポートを指定します。$portは実際のポート番号に置き換えてください。直接接続方式のデフォルトポートは2881ですが、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。-u:OceanBaseデータベースの接続アカウントを指定します。$user_nameの形式はユーザー名@テナント名です。MySQLテナントの管理者ユーザー名はデフォルトでrootです。注意
直接接続方式でOceanBaseデータベースに接続する場合、接続パラメータ
-uの後には正しいユーザー名@テナント名を記述し、クラスタ名は指定しないでください。-uにクラスタ名が含まれていると、接続エラーが発生します。-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。説明
セキュリティ上の理由から、特にスクリプトや履歴が参照可能な環境では、コマンドラインに直接パスワードを入力することは推奨されません。このオプションを省略し、プロンプトが表示されたときにパスワードを入力することをお勧めします。
-c:オプションです。OBClientの実行環境でコメントを無視しないようにします。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。OBClientがデータベースに接続する際に統計情報を自動取得しないようにします。$database_name:オプションです。OceanBaseデータベースに接続した後に使用するデフォルトのデータベースを指定します。指定しない場合、デフォルトではどのデータベースにも直接入らず、接続後に手動で選択する必要があります。
例:
obclient -h10.10.10.1 -P2881 -uuser001@obtenant -p****** -c -A oceanbase
接続例
コマンドラインターミナルを開きます。
OBClientクライアントを使用して、ODP経由でOceanBaseデータベースのMySQLテナントに接続します。
obclient -hxxx.xx.xxx.xxx -P2883 -uroot@mysql001#test432 -p****** -A oceanbaseOBClientコマンドラインを終了する場合は、
exitと入力してEnterキーを押すか、ショートカットキー Ctrl + D を押します。
関連ドキュメント
OBClientを使用してOceanBaseデータベースのOracleテナントに接続する操作例については、OBClientを使用してOceanBaseテナントに接続するを参照してください。