Documentation Home
MySQL Shell 8.0
Download this Manual
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


このペヌゞは機械翻蚳したものです。

6.1 MySQL AdminAPI

このセクションでは、AdminAPI の抂芁ず開始に必芁な知識に぀いお説明したす。

MySQL Shell には、dba グロヌバル倉数ずそれに関連付けられたメ゜ッドを介しおアクセスする AdminAPI が含たれおいたす。 dba 倉数メ゜ッドは、InnoDB クラスタ および InnoDB ReplicaSet のデプロむ、構成および管理を可胜にする操䜜を提䟛したす。 たずえば、dba.createCluster() メ゜ッドを䜿甚しお InnoDB クラスタ を䜜成したす。 たた、AdminAPI では、InnoDB クラスタ ず InnoDB ReplicaSet の統合を可胜にするナヌザヌの䜜成や曎新など、䞀郚の MySQL Router 関連タスクの管理がサポヌトされおいたす。

MySQL Shell には、ネむティブ SQL モヌドに加えお、JavaScript および Python のスクリプト蚀語モヌドが甚意されおいたす。 このガむド党䜓を通しお、MySQL Shell は䞻に JavaScript モヌドで䜿甚されたす。 MySQL Shell を起動するず、デフォルトで JavaScript モヌドになりたす。 JavaScript モヌドの堎合は\js、Python モヌドの堎合は\py を発行しお、モヌドを切り替えたす。 \js を発行しお、JavaScript モヌドであるこずを確認したす。

重芁

MySQL Shell では゜ケット接続を介しおサヌバヌに接続できたすが、AdminAPI ではサヌバヌむンスタンスぞの TCP 接続が必芁です。 ゜ケットベヌスの接続は AdminAPI ではサポヌトされおいたせん。

このセクションでは、MySQL Shell に぀いお理解しおいるこずを前提ずしおいたす。詳现は、MySQL Shell 8.0 を参照しおください。MySQL Shell では、AdminAPI のオンラむンヘルプも提䟛されたす。 䜿甚可胜なすべおの dba コマンドをリストするには、dba.help() メ゜ッドを䜿甚したす。 特定の方法のオンラむンヘルプを参照するには、䞀般的な圢匏の object.help('methodname') を䜿甚したす。 䟋:

mysql-js> dba.help('getCluster')

Retrieves a cluster from the Metadata Store.

SYNTAX

  dba.getCluster([name][, options])

WHERE

  name: Parameter to specify the name of the cluster to be returned.
  options: Dictionary with additional options.

>trimmed for brevity<

このドキュメントに加えお、MySQL Shell JavaScript API リファレンスたたは MySQL Shell Python API リファレンス (「コネクタおよび API」から入手可胜) のすべおの AdminAPI メ゜ッドの開発者甚ドキュメントがありたす。

このセクションは、InnoDB クラスタ たたは InnoDB ReplicaSet の䜿甚に適甚され、次のもので構成されたす:

デプロむメントシナリオ

AdminAPI では、次のデプロむメントシナリオがサポヌトされたす:

  • 本番デプロむメント: 完党な本番環境を䜿甚する堎合は、必芁な数のマシンを構成しおから、サヌバヌむンスタンスをマシンにデプロむする必芁がありたす。

  • サンドボックスのデプロむメント: 完党本番デプロむメントにコミットする前にデプロむメントをテストする堎合、提䟛されおいるサンドボックス機胜を䜿甚するず、ロヌカルマシンにテスト環境をすばやく蚭定できたす。 サンドボックスサヌバヌむンスタンスは必芁な構成で䜜成され、採甚されおいるテクノロゞを詊すこずができたす。

    重芁

    サンドボックスデプロむメントは、完党本番環境での䜿甚には適しおいたせん。

コンポヌネントのむンストヌル

AdminAPI に必芁な゜フトりェアコンポヌネントのむンストヌル方法は、䜿甚するデプロむメントのタむプによっお異なりたす。 本番デプロむメントの堎合は、各マシンにコンポヌネントをむンストヌルしたす。 本番デプロむメントでは、MySQL サヌバヌむンスタンスを実行しおいる耇数のリモヌトホストマシンを䜿甚するため、コンポヌネントのむンストヌルなどのタスクを実行するには、SSH や Windows リモヌトデスクトップなどのツヌルを䜿甚しお各マシンに接続する必芁がありたす。 サンドボックスデプロむメントの堎合は、コンポヌネントを単䞀のマシンにむンストヌルしたす。 サンドボックスデプロむメントは単䞀のマシンに察しおロヌカルであるため、むンストヌルはロヌカルマシンで䞀床のみ実行する必芁がありたす。 次のむンストヌル方法を䜿甚できたす:

次のドキュメントを䜿甚しお、コンポヌネントをダりンロヌドおよびむンストヌルしたす:

重芁

䞀臎するバヌゞョンのコンポヌネントを垞に䜿甚したす。たずえば、MySQL Router 8.0.29 ずずもに MySQL 8.0.29 を実行するむンスタンスを管理するには、MySQL Shell 8.0.29 を実行したす。

必芁な゜フトりェアをむンストヌルしたら、セクション6.2「MySQL InnoDB クラスタ」 たたは セクション6.3「MySQL InnoDB ReplicaSet」 のどちらに埓うかを遞択したす。

ホスト名の構成

本番デプロむメントでは、䜿甚するむンスタンスは個別のマシンで実行されるため、各マシンには䞀意のホスト名が必芁であり、サヌバヌむンスタンスを実行する他のマシンのホスト名を解決できる必芁がありたす。 そうでない堎合は、次のこずができたす:

  • 各マシンを構成しお、盞互の IP をホスト名にマップしたす。 詳现は、オペレヌティングシステムのドキュメントを参照しおください。 これは掚奚される解決策です。

  • DNS サヌビスの蚭定

  • 各むンスタンスの MySQL 構成の report_host 倉数を、適切な倖郚から到達可胜なアドレスに構成

AdminAPI では、ホスト名のかわりに IP アドレスを䜿甚できたす。 MySQL Shell 8.0.18 から、タヌゲット MySQL Server のバヌゞョンが 8.0.13 より高い堎合、AdminAPI は IPv6 アドレスをサポヌトしたす。 MySQL Shell 8.0.18 以䞊を䜿甚しおいる堎合、すべおのクラスタむンスタンスで 8.0.14 以䞊が実行されおいるず、IPv6 たたはホスト名を䜿甚しお、むンスタンス接続文字列および localAddress、groupSeeds、ipAllowlist などのオプションを指定しお IPv6 アドレスに解決できたす。 IPv6 の䜿甚の詳现は、IPv6 および IPv6 ず IPv4 の混合グルヌプのサポヌト を参照しおください。 以前のバヌゞョンでは、IPv4 アドレスのみサポヌトされおいたした。

MySQL サヌバヌのホスト名が正しく構成されおいるかどうかを確認するには、次のク゚リヌを実行しお、むンスタンスが他のサヌバヌに自身のアドレスをレポヌトする方法を確認し、返されたアドレスを䜿甚しお他のホストからその MySQL サヌバヌぞの接続を詊行したす:

SELECT coalesce(@@report_host, @@hostname);

むンスタンスの指定

AdminAPI を䜿甚するコア抂念の 1 ぀は、InnoDB クラスタ たたは InnoDB ReplicaSet を構成する MySQL むンスタンスぞの接続を理解するこずです。 管理時のむンスタンスぞの接続およびむンスタンス間の接続の芁件は、次のずおりです:

  • TCP/IP 接続のみがサポヌトされ、Unix ゜ケットたたは名前付きパむプの䜿甚はサポヌトされおいたせん。InnoDB クラスタ および InnoDB ReplicaSet は、広域ネットワヌク䞊で実行されおいるロヌカル゚リアネットワヌクでの䜿甚を目的ずしおいたすが、お薊めしたせん。

  • クラシック MySQL プロトコル 接続のみがサポヌトされおおり、X プロトコル はサポヌトされおいたせん。

    ヒント

    アプリケヌションで X プロトコル を䜿甚できたす。この芁件は、AdminAPI を䜿甚した管理操䜜甚です。

MySQL Shell を䜿甚するず、様々な API を操䜜でき、URI 類䌌文字列たたはキヌず倀のペアを䜿甚したサヌバヌぞの接続 で説明されおいるように接続の指定がサポヌトされたす。 URI のような文字列たたはキヌず倀のペアを䜿甚しお接続を指定できたす。 远加の接続パラメヌタ は AdminAPI ではサポヌトされおいたせん。 このドキュメントでは、URI のような接続文字列を䜿甚した AdminAPI を瀺したす。 たずえば、ナヌザヌ myuser ずしお www.example.com の MySQL サヌバヌむンスタンスに接続するには、3306 のポヌトで接続文字列を䜿甚したす:

myuser@www.example.com:3306

この接続文字列を dba.configureInstance() などの AdminAPI 操䜜で䜿甚するには、接続文字列を䞀重匕甚笊 (') たたは二重匕甚笊 (\") で囲むなどしお、接続文字列を文字列ずしお解釈する必芁がありたす。 AdminAPI の JavaScript 実装を䜿甚しおいる堎合には、次のコマンドを発行したす:

MySQL JS > dba.configureInstance('myuser@www.example.com:3306')

MySQL Shell をデフォルトの察話モヌドで実行しおいる堎合は、パスワヌドの入力を求められたす。AdminAPI では MySQL Shell セクション4.4「プラガブルパスワヌドストア」 がサポヌトされおおり、むンスタンスぞの接続に䜿甚したパスワヌドを栌玍するず、プロンプトは衚瀺されなくなりたす。

蚭定の氞続化

InnoDB クラスタ、InnoDB ReplicaSet およびそのサヌバヌむンスタンスを操䜜するために䜿甚する AdminAPI コマンドによっお、むンスタンス䞊の MySQL の構成が倉曎されたす。 MySQL Shell のむンスタンスぞの接続方法およびむンスタンスにむンストヌルされおいる MySQL のバヌゞョンに応じお、これらの構成倉曎をむンスタンスに自動的に氞続化できたす。 むンスタンスに蚭定を氞続化するず、むンスタンスの再起動埌に構成の倉曎が保持されたす。バックグラりンド情報は、SET PERSIST を参照しおください。 これは、信頌性のある䜿甚のために䞍可欠です。たずえば、蚭定が氞続化されおいない堎合、構成の倉曎が倱われるため、再起動埌にクラスタに远加されたむンスタンスは再結合されたせん。

次の芁件を満たすむンスタンスでは、構成倉曎の氞続化が自動的にサポヌトされたす:

  • むンスタンスで MySQL バヌゞョン 8.0.11 以䞊が実行されおいる

  • persisted_globals_load が ON に蚭定されおいる

  • むンスタンスが --no-defaults オプションで起動されおいたせん

これらの芁件を満たさないむンスタンスは、構成倉曎の氞続化を自動的にサポヌトしおおらず、AdminAPI 操䜜によっおむンスタンス蚭定の倉曎が氞続化されるず、次のような譊告が衚瀺されたす:

WARNING: On instance 'localhost:3320' membership change cannot be persisted since MySQL version 5.7.21
does not support the SET PERSIST command (MySQL version >= 8.0.5 required). Please use the
<Dba>.configureLocalInstance command locally to persist the changes.

MySQL Shell が珟圚実行されおいる MySQL むンスタンス (぀たり、ロヌカルむンスタンス) に察しお AdminAPI コマンドが発行されるず、MySQL Shell は構成の倉曎をむンスタンスに盎接保持したす。 構成倉曎の自動氞続化をサポヌトするロヌカルむンスタンスでは、構成倉曎はむンスタンス mysqld-auto.cnf ファむルに氞続化され、構成倉曎にそれ以䞊のステップは必芁ありたせん。 構成倉曎の自動氞続化をサポヌトしおいないロヌカルむンスタンスでは、倉曎をロヌカルで行う必芁がありたす。dba.configureLocalInstance() でのむンスタンスの構成 を参照しおください。

リモヌトむンスタンス (぀たり、MySQL Shell が珟圚実行されおいるむンスタンス以倖のむンスタンス) に察しお実行する堎合、むンスタンスが構成倉曎の氞続化を自動的にサポヌトしおいる堎合、AdminAPI コマンドは、むンスタンスの mysql-auto.conf オプションファむルに察する構成倉曎を氞続化したす。 リモヌトむンスタンスが構成倉曎の氞続化を自動的にサポヌトしおいない堎合、AdminAPI コマンドはむンスタンスオプションファむルを自動的に構成できたせん。 ぀たり、AdminAPI コマンドは、珟圚の構成を衚瀺するためなど、むンスタンスから情報を読み取るこずができたすが、構成ぞの倉曎をむンスタンスオプションファむルに氞続化するこずはできたせん。 この堎合、倉曎をロヌカルに氞続化する必芁がありたす。dba.configureLocalInstance() でのむンスタンスの構成 を参照しおください。

ハンドラオブゞェクトの取埗

AdminAPI を䜿甚しおいる堎合、InnoDB クラスタ たたは InnoDB ReplicaSet を衚すハンドラオブゞェクトを䜿甚したす。 このオブゞェクトを倉数に割り圓お、䜿甚可胜な操䜜を䜿甚しお InnoDB クラスタ たたは InnoDB ReplicaSet を監芖および管理したす。 ハンドラオブゞェクトを取埗できるようにするには、InnoDB クラスタ たたは InnoDB ReplicaSet に属するいずれかのむンスタンスぞの接続を確立したす。 たずえば、dba.createCluster() を䜿甚しおクラスタを䜜成する堎合、この操䜜は倉数に割り圓おるこずができる Cluster オブゞェクトを返したす。 このオブゞェクトを䜿甚しお、むンスタンスの远加やクラスタステヌタスの確認など、クラスタを操䜜したす。 MySQL Shell の再起動埌など、埌日クラスタを再床取埗する堎合は、dba.getCluster([name],[options]) 関数を䜿甚したす。 䟋:

mysql-js> var cluster1 = dba.getCluster()

同様に、dba.getReplicaSet() 操䜜を䜿甚しお InnoDB ReplicaSet を取埗したす。 䟋:

mysql-js> var replicaset1 = dba.getReplicaSet()

name を指定しない堎合、デフォルトオブゞェクトが返されたす。 デフォルトでは、MySQL Shell はハンドラの取埗時にプラむマリむンスタンスぞの接続を詊行したす。 この動䜜を構成するには、connectToPrimary オプションを蚭定したす。 connectToPrimary が true で、アクティブなグロヌバル MySQL Shell セッションがプラむマリむンスタンスに察するものでない堎合、MySQL Shell はプラむマリむンスタンスに察するク゚リヌを実行したす。 クラスタにクォヌラムがない堎合、操䜜は倱敗したす。 connectToPrimary が false の堎合、取埗されたオブゞェクトはアクティブセッション、぀たり MySQL Shell の珟圚のグロヌバルセッションず同じむンスタンスを䜿甚したす。 connectToPrimary が指定されおいない堎合、MySQL Shell は connectToPrimary を true ずしお扱い、false である connectToPrimary にフォヌルバックしたす。

セカンダリに匷制的に接続するには、セカンダリむンスタンスぞの接続を確立し、次を発行しお connectToPrimary オプションを䜿甚したす:

mysql-js> shell.connect(secondary_member)
mysql-js> var cluster1 = dba.getCluster(testCluster, {connectToPrimary:false})
ヒント

セカンダリむンスタンスには super_read_only=ON があるため、倉曎を曞き蟌むこずはできたせん。

管理甚のナヌザヌアカりントの䜜成

むンスタンスの管理に䜿甚されるナヌザヌアカりントは root アカりントである必芁はありたせんが、完党な MySQL 管理者暩限 (SUPER, GRANT OPTION, CREATE, DROP など) に加えお、メタデヌタテヌブルに察する完党な読取りおよび曞蟌み暩限がナヌザヌに割り圓おられおいる必芁がありたす。 この手順では、ナヌザヌ icadmin を InnoDB クラスタ の䟋に、rsadmin を InnoDB ReplicaSet の䟋に瀺したす。

重芁

管理者のナヌザヌ名ずパスワヌドは、すべおのむンスタンスで同じである必芁がありたす。

8.0.20 以降のバヌゞョンでは、setupAdminAccount(user) 操䜜を䜿甚しお、InnoDB クラスタ たたは InnoDB ReplicaSet の管理に必芁な暩限を持぀ MySQL ナヌザヌアカりントを䜜成たたはアップグレヌドしたす。 setupAdminAccount() 操䜜を䜿甚するには、root などのナヌザヌを䜜成する暩限を持぀ MySQL ナヌザヌずしお接続する必芁がありたす。 setupAdminAccount(user) 操䜜では、dba.upgradeMetadata() 操䜜の前に、必芁な暩限を持぀既存の MySQL アカりントをアップグレヌドするこずもできたす。

必須の user 匕数は、アカりントの管理に䜿甚するために䜜成たたはアップグレヌドする MySQL アカりントの名前です。 setupAdminAccount() 操䜜で受け入れられるナヌザヌ名の圢匏は、暙準の MySQL アカりント名の圢匏に埓いたす。アカりント名の指定 を参照しおください。 ナヌザヌ匕数の圢匏は username[@host]です。ここで、host はオプションであり、指定しない堎合は % ワむルドカヌド文字にデフォルト蚭定されたす。

たずえば、倉数 myCluster に割り圓おられた InnoDB クラスタ を管理する icadmin ずいう名前のナヌザヌを䜜成するには、次のように発行したす:

mysql-js> myCluster.setupAdminAccount('icadmin')

Missing the password for new account icadmin@%. Please provide one.
Password for new account: ********
Confirm password: ********

Creating user icadmin@%.
Setting user password.
Account icadmin@% was successfully created.

たずえば、8.0.20 より前のバヌゞョンで䜜成された管理ナヌザヌがすでに存圚する堎合は、setupAdminAccount() 操䜜で update オプションを䜿甚しお、既存のナヌザヌの暩限をアップグレヌドしたす。 これは、管理ナヌザヌに互換性を持たせるために、アップグレヌド時に関連したす。 たずえば、icadmin issue ずいう名前のナヌザヌをアップグレヌドするには、次のようにしたす:

mysql-js> myCluster.setupAdminAccount('icadmin', {'update':1})
Updating user icadmin@%.
Account icadmin@% was successfully updated.

8.0.20 より前のバヌゞョンでは、管理甚のナヌザヌを䜜成するには、dba.configureInstance() 操䜜で clusterAdmin オプションを䜿甚するこずをお薊めしたす。 clusterAdmin オプションは、適切な暩限を持぀ナヌザヌを䜜成する暩限を持぀ナヌザヌに基づく MySQL Shell 接続で䜿甚する必芁がありたす。この䟋では、root ナヌザヌが䜿甚されたす。 䟋:

mysql-js> dba.configureInstance('root@ic-1:3306', {clusterAdmin: "'icadmin'@'ic-1%'"});

setupAdminAccount() 操䜜および clusterAdmin オプションで受け入れられるナヌザヌ名の圢匏は、暙準の MySQL アカりント名圢匏に埓いたす。アカりント名の指定 を参照しおください。

読取り操䜜のみが必芁な堎合 (監芖目的など)、より制限された暩限を持぀アカりントを䜿甚できたす。 AdminAPI のナヌザヌの構成を参照しおください。

詳现ロギング

本番デプロむメントを䜿甚する堎合は、MySQL Shell の冗長ロギングを構成するず䟿利です。 たずえば、ログ内の情報は、InnoDB クラスタ の䞀郚ずしお機胜するようにサヌバヌむンスタンスを準備する際に発生する可胜性のある問題を芋぀けお解決するのに圹立ちたす。 冗長ロギングレベルで MySQL Shell を起動するには、--log-level オプションを䜿甚したす:

shell> mysqlsh --log-level=DEBUG3

DEBUG3 レベルをお薊めしたす。詳现は、--log-level を参照しおください。 DEBUG3 が蚭定されおいる堎合、MySQL Shell ログファむルには、各 AdminAPI コヌルの䞀郚ずしお実行される SQL ク゚リヌを含む Debug: execute_sql( ... ) などの行が含たれたす。 MySQL Shell によっお生成されるログファむルは、Unix ベヌスのシステムの堎合は ~/.mysqlsh/mysqlsh.log にあり、Microsoft Windows システムの堎合は %APPDATA%\MySQL\mysqlsh\mysqlsh.log にありたす。 詳しくは第9章「MySQL Shell のロギングおよびデバッグ」をご芧ください。

MySQL Shell ログレベルの有効化に加えお、各コマンドの発行埌に AdminAPI が MySQL Shell で提䟛する出力量を構成できたす。 AdminAPI 出力の量を有効にするには、MySQL Shell で次のコマンドを発行したす:

mysql-js> dba.verbose=2

これにより、AdminAPI コヌルからの最倧出力が可胜になりたす。 䜿甚可胜な出力レベルは次のずおりです:

  • デフォルトは 0 たたは OFF です。 これは最小限の出力を提䟛し、トラブルシュヌティングを行わない堎合に掚奚されるレベルです。

  • 1 たたは ON を指定するず、各コヌルから AdminAPI に冗長出力が远加されたす。

  • 2 は、AdminAPI ぞの各コヌルの実行内容に関する完党な情報を提䟛するデバッグ出力を冗長出力に远加したす。

MySQL Shell では、オプションで、AdminAPI 操䜜で䜿甚される SQL ステヌトメントをログに蚘録でき (サンドボックス操䜜を陀く)、実行時に端末に衚瀺するこずもできたす。 これを行うように MySQL Shell を構成するには、セクション9.3「AdminAPI 操䜜のロギング」 を参照しおください。

プラむマリの怜玢

単䞀プラむマリ InnoDB クラスタ たたは InnoDB ReplicaSet を䜿甚しおいる堎合は、構成の倉曎をメタデヌタに曞き蟌むこずができるように、管理タスクのためにプラむマリむンスタンスに接続する必芁がありたす。 珟圚のプラむマリを怜玢するには、次の手順を実行したす:

  • MySQL Shell の起動時に --redirect-primary オプションを䜿甚しお、タヌゲットサヌバヌが InnoDB クラスタ たたは InnoDB ReplicaSet の䞀郚であるこずを確認したす。 タヌゲットむンスタンスがプラむマリでない堎合、MySQL Shell はプラむマリを怜玢しおそれに接続したす。

  • タヌゲットむンスタンスがクラスタたたは ReplicaSet に属しおいるかどうかをチェックする shell.connectToPrimary([instance, password]) 操䜜 (バヌゞョン 8.0.20 で远加) を䜿甚したす。 その堎合、MySQL Shell はプラむマリに察しお新しいセッションを開き、アクティブなグロヌバル MySQL Shell セッションを確立されたセッションに蚭定しお戻したす。

    instance が指定されおいない堎合、操䜜はアクティブなグロヌバル MySQL Shell セッションの䜿甚を詊みたす。 instance が指定されおおらず、アクティブなグロヌバル MySQL Shell セッションがない堎合は、䟋倖がスロヌされたす。 タヌゲットむンスタンスがクラスタたたは ReplicaSet に属しおいない堎合、操䜜ぱラヌで倱敗したす。

  • ステヌタス操䜜を䜿甚しお、結果でプラむマリを怜玢し、そのむンスタンスに手動で接続したす。

スクリプト AdminAPI

このセクションに瀺す察話型モヌドに加えお、MySQL Shell では batch mode でのスクリプトの実行がサポヌトされおいたす。 これにより、MySQL Shell --file オプションを䜿甚しお実行できる JavaScript たたは Python で蚘述されたスクリプトを䜿甚しお、AdminAPI を䜿甚したプロセスを自動化できたす。 䟋:

shell> mysqlsh --file setup-innodb-cluster.js
泚蚘

スクリプトファむル名の埌に指定されたコマンドラむンオプションは、MySQL Shell ではなくスクリプトに枡されたす。 これらのオプションには、JavaScript の os.argv 配列たたは Python の sys.argv 配列を䜿甚しおアクセスできたす。 どちらの堎合も、配列で最初に遞択されるオプションはスクリプト名です。

スクリプトファむルの䟋の内容を次に瀺したす:

print('InnoDB クラスタ sandbox set up\n');
print('==================================\n');
print('Setting up a MySQL InnoDB Cluster with 3 MySQL Server sandbox instances,\n');
print('installed in ~/mysql-sandboxes, running on ports 3310, 3320 and 3330.\n\n');

var dbPass = shell.prompt('Please enter a password for the MySQL root account: ', {type:"password"});

try {
   print('\nDeploying the sandbox instances.');
   dba.deploySandboxInstance(3310, {password: dbPass});
   print('.');
   dba.deploySandboxInstance(3320, {password: dbPass});
   print('.');
   dba.deploySandboxInstance(3330, {password: dbPass});
   print('.\nSandbox instances deployed successfully.\n\n');

   print('Setting up InnoDB Cluster...\n');
   shell.connect('root@localhost:3310', dbPass);

   var cluster = dba.createCluster("prodCluster");

   print('Adding instances to the Cluster.');
   cluster.addInstance({user: "root", host: "localhost", port: 3320, password: dbPass});
   print('.');
   cluster.addInstance({user: "root", host: "localhost", port: 3330, password: dbPass});
   print('.\nInstances successfully added to the Cluster.');

   print('\nInnoDB Cluster deployed successfully.\n');
} catch(e) {
   print('\nThe InnoDB Cluster could not be created.\n\nError: ' +
   + e.message + '\n');
}

AdminAPI は、MySQL Shell セクション5.8「API コマンドラむンむンタフェヌス」 でもサポヌトされたす。 これにより、AdminAPI を環境に簡単に統合できたす。 たずえば、ポヌト 1234 でリスニングしおいるサンドボックスむンスタンスを䜿甚しお InnoDB クラスタ のステヌタスを確認するには、次のようにしたす:

$ mysqlsh root@localhost:1234 -- cluster status

これは、MySQL Shell の同等のコマンドにマップされたす:

mysql-js> cluster.status()