OceanBaseデータベースのMySQLテナントを使用する場合、MySQLクライアントを使用してそのテナントに接続できます。このセクションでは、この接続方法の前提条件、接続操作、および例について説明します。
前提条件
MySQLクライアントを使用してデータベースに接続する前に、以下の事項を確認してください:
ローカル環境にMySQLクライアントが正しくインストールされていることを確認してください。OceanBaseデータベースの現在のバージョンでサポートされているMySQLクライアントのバージョンは、V5.5、V5.6、およびV5.7です。
環境変数
PATHに、MySQLクライアントコマンドが存在するディレクトリが含まれていることを確認してください。テナントに接続する前に、現在のクライアントがテナントのホワイトリストに含まれていることを確認してください。テナントのホワイトリストの確認および設定の具体的な操作については、テナントのホワイトリストの確認と設定を参照してください。
接続操作
ODPを介した接続方式
MySQLクライアントコマンドを使用して、OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)を介してOceanBaseデータベースに接続する形式は以下のとおりです:
mysql -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クライアントはMySQLテナントへの接続のみをサポートしており、MySQLテナントの管理者ユーザー名はデフォルトでrootです。説明
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
まず、直接接続方式でOceanBaseデータベースに接続します。次に、SHOW PARAMETERS LIKE 'cluster';コマンドを実行してクラスタ名を取得します。このコマンドの結果で、VALUEの値がOceanBaseクラスタの名前に対応します。 - ODPが複数のクラスタをプロキシしている場合、接続時にクラスタ名を指定する必要があります。ODPが単一のクラスタのみをプロキシしている場合、接続時にクラスタ名を指定する必要はありません。
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。説明
セキュリティ上の理由から、特にスクリプトや履歴が参照可能な環境では、コマンドラインに直接パスワードを入力することは推奨されません。このオプションを省略し、プロンプトが表示されたときにパスワードを入力することをお勧めします。
-c:オプションです。MySQLの実行環境でコメントを無視しないようにします。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。MySQLがデータベースに接続する際に統計情報を自動取得しないようにします。$database_name:オプションです。OceanBaseデータベースに接続後に使用するデフォルトのデータベースを指定します。指定しない場合、デフォルトではどのデータベースにも直接入らず、接続後に手動で選択する必要があります。
例:
mysql -h10.10.10.1 -uuser001@obmysql#obdemo -P2883 -p****** -c -A oceanbase
直接接続方式
MySQLクライアントコマンドを使用して、直接接続方式でOceanBaseデータベースに接続する形式は以下のとおりです:
mysql -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:オプションです。MySQLの実行環境でコメントを無視しないことを示します。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。MySQLがデータベースに接続する際に統計情報を自動取得しないことを示します。$database_name:オプションです。OceanBaseデータベースに接続後に使用するデフォルトのデータベースを指定します。指定しない場合、デフォルトではどのデータベースにも直接入らず、接続後に手動で選択する必要があります。
例:
mysql -h10.10.10.1 -uuser001@obmysql -P2881 -p****** -c -A oceanbase
接続例
コマンドラインターミナルを開きます。
MySQLクライアントを使用して、ODP経由でOceanBaseデータベースのMySQLテナントに接続します。
mysql -hxxx.xx.xxx.xxx -P2883 -uroot@mysql001#test432 -p****** -A oceanbaseMySQLコマンドラインを終了する場合は、
exitと入力してEnterキーを押すか、ショートカットキー Ctrl + D を押します。
詳細を見る
MySQLクライアントからOceanBaseデータベースに接続する際に問題が発生した場合は、MySQLクライアントの公式ドキュメントを参照することをお勧めします。