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モードのテナントのみサポートしており、その管理者ユーザー名のデフォルトはrootです。説明
- ODPを使用してOceanBaseクラスタに接続する際、次の方法でクラスタ名を取得できます:
まず、直接接続方式でOceanBaseデータベースに接続します。次に、SHOW PARAMETERS LIKE 'cluster';コマンドを実行してクラスタ名を取得します。このコマンドが返す結果のVALUEの値が、OceanBaseクラスタの名前に該当します。 - ODPが複数のクラスタをプロキシしている場合、接続時にクラスタ名を指定する必要があります。ODPが1つのクラスタだけをプロキシしている場合、接続時にクラスタ名を指定する必要はありません。
- 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ノード上に配置されていない場合、そのノードへ直接接続しても、そのテナントに接続することはできません。
-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 oceanbase次のような結果が返されます:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.6.25 OceanBase 4.3.2.0 (r200000272024061717-93c0ed73ebbcac6edbf7b585860b75d825935358) (Built Jun 17 2024 18:06:04) <...> Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [oceanbase]>MySQLコマンドラインを終了するには、
exitと入力してEnterキーを押すか、Ctrl + D のショートカットキーを押します。
詳細情報
MySQLクライアントを使用してOceanBaseデータベースに接続する際に問題が発生した場合は、MySQLクライアントの公式ドキュメントを参照することを推奨します。