MySQL Shell 8.0

このページは機械翻訳したものです。

3.1 MySQL Shell のコマンド

MySQL Shell には、アクティブなプログラミング言語や MySQL Server 接続の構成など、コードエディタの実行環境を変更できるコマンドが用意されています。 次のテーブルに、現在選択されている言語に関係なく使用可能なコマンドを示します。 コマンドは実行モードから独立して使用可能である必要があるため、エスケープシーケンス (\文字) で始まります。

コマンド Alias/Shortcut 説明

\help

\h または\?

MySQL Shell に関するヘルプを出力するか、オンラインヘルプを検索します。

\quit

\q または\exit

MySQL Shell を終了します。

\

SQL モードで、複数行モードを開始します。 空の行が入力されると、コードがキャッシュされて実行されます。

\status

\s

現在の MySQL Shell ステータスを表示します。

\js

実行モードを JavaScript に切り替えます。

\py

実行モードを Python に切り替えます。

\sql

実行モードを SQL に切り替えます。

\connect

\c

MySQL インスタンスに接続します。

\reconnect

同じ MySQL インスタンスに再接続します。

\disconnect

グローバルセッションを切断します。

\use

\u

使用するスキーマを指定します。

\source

\. または source (バックスラッシュなし)

アクティブな言語を使用してスクリプトファイルを実行します。

\warnings

\W

ステートメントによって生成された警告を表示します。

\nowarnings

\w

ステートメントによって生成された警告を表示しません。

\history

コマンドライン履歴を表示および編集します。

\rehash

オートコンプリート名前キャッシュを手動で更新します。

\option

MySQL Shell 構成オプションをクエリーおよび変更します。

\show

指定されたオプションと引数を使用して、指定されたレポートを実行します。

\watch

指定されたオプションと引数を使用して指定されたレポートを実行し、定期的に結果をリフレッシュします。

\edit

\e

デフォルトのシステムエディタでコマンドを開き、MySQL Shell に表示します。

\pager

\P

MySQL Shell がテキストの表示に使用するページャを構成します。

\nopager

MySQL Shell が使用するように構成されたページャを無効にします。

\system

\!

指定したオペレーティングシステムコマンドを実行し、MySQL Shell に結果を表示します。

Help コマンド

\help コマンドは、パラメータの有無にかかわらず使用できます。 パラメータを指定せずに使用すると、使用可能な MySQL Shell コマンド、グローバルオブジェクトおよびメインヘルプカテゴリに関する情報を含む一般的なヘルプメッセージが出力されます。

このパラメータをパラメータとともに使用すると、MySQL Shell が現在実行されているモードに基づいて使用可能なヘルプを検索するために使用されます。 パラメータには、ワード、コマンド、API 関数または SQL ステートメントの一部を指定できます。 次のカテゴリが存在します:

  • AdminAPI - dba グローバルオブジェクトおよび AdminAPI の詳細を示します。これにより、InnoDB クラスタ および InnoDB ReplicaSet を使用できます。

  • X DevAPI - mysqlx モジュールと、MySQL をドキュメントストアとして使用できる X DevAPI の機能の詳細を示します

  • Shell Commands - に、使用可能な組込み MySQL Shell コマンドの詳細を示します。

  • ShellAPI - には、shell および util のグローバルオブジェクトと、MySQL Servers で SQL を実行できるようにする mysql モジュールに関する情報が含まれています。

  • SQL Syntax - SQL ステートメントの構文ヘルプを取得するエントリポイント。

API 関数など、トピックのヘルプを検索するには、関数名を pattern として使用します。 ワイルドカード文字 ? を使用して単一の文字を照合し、* を使用して検索で複数の文字を照合できます。 ワイルドカード文字は、パターン内で 1 回以上使用できます。 次のネームスペースは、ヘルプの検索時にも使用できます:

  • dba for AdminAPI

  • mysqlx for X DevAPI

  • mysql for ShellAPI for クラシック MySQL プロトコル

  • 他の ShellAPI クラス用の shell: Shell, Sys, Options

  • MySQL Shell コマンド用の commands

  • mysqlsh コマンドインタフェース用の cmdline

たとえば、トピックのヘルプを検索するには、\help pattern を発行し、次のようにします:

  • x devapi を使用した X DevAPI のヘルプの検索

  • \c を使用して、MySQL Shell \connect コマンドのヘルプを検索

  • Cluster または dba.Cluster を使用して、AdminAPI dba.Cluster() 操作のヘルプを検索

  • Table または mysqlx.Table を使用して、X DevAPI Table クラスのヘルプを検索

  • MySQL Shell が JavaScript モードで実行されている場合は、isViewTable.isView または mysqlx.Table.isView を使用して、Table オブジェクトの isView 関数に関するヘルプを検索

  • MySQL Shell が Python モードで実行されている場合は、is_viewTable.is_view または mysqlx.Table.is_view を使用して、Table オブジェクトの isView 関数に関するヘルプを検索

  • MySQL Shell が SQL モードで実行されている場合、MySQL サーバーへのグローバルセッションが存在すると、SQL ヘルプが表示されます。 概要では、検索パターンとして sql syntax を使用します。

指定された検索パターンによっては、1 つまたは複数の結果が見つかります。 タイトルに検索パターンが含まれているヘルプトピックが 1 つだけの場合は、そのヘルプトピックが表示されます。 複数のトピックタイトルがパターンと一致するが、1 つが完全一致の場合、そのヘルプトピックが表示され、その後にパターン一致を含む他のトピックのリストがタイトルに表示されます。 完全一致が識別されない場合は、タイトルにパターン一致があるトピックのリストが表示されます。 トピックのリストが返された場合は、関連トピックのタイトルに一致する拡張検索パターンを指定してコマンドを再度入力することで、表示するトピックをリストから選択できます。

接続、再接続および切断コマンド

\connect コマンドは、MySQL Server への接続に使用されます。 セクション4.3「MySQL Shell 接続」を参照してください。

例:

\connect root@localhost:3306

パスワードが必要な場合は、パスワードの入力を求められます。

--mysqlx (--mx) オプションを使用して、X プロトコル を使用して MySQL サーバーインスタンスに接続するセッションを作成します。 例:

\connect --mysqlx root@localhost:33060

--mysql (--mc) オプションを使用して ClassicSession を作成すると、クラシック MySQL プロトコル を使用してサーバーで SQL を直接発行できます。 例:

\connect --mysql root@localhost:3306

短い形式のオプション (-mx および -mc) を使用した単一ダッシュの使用は、MySQL Shell のバージョン 8.0.13 から非推奨になりました。

\reconnect コマンドは、パラメータまたはオプションなしで指定されます。 サーバーへの接続が失われた場合は、\reconnect コマンドを使用できます。これにより、MySQL Shell は既存の接続パラメータを使用してセッションの再接続を複数回試行します。 これらの試行が失敗した場合は、\connect コマンドを使用して接続パラメータを指定することで、新しい接続を作成できます。

MySQL Shell 8.0.22 から使用可能な\disconnect コマンドも、パラメータまたはオプションなしで指定されます。 このコマンドは、現在接続している MySQL サーバーインスタンスから MySQL Shell グローバルセッション (session グローバルオブジェクトで表されるセッション) を切断して、接続をクローズできるようにしますが、引き続き MySQL Shell を使用します。

サーバーへの接続が失われた場合は、\reconnect コマンドを使用できます。これにより、MySQL Shell は既存の接続パラメータを使用してセッションの再接続を複数回試行します。 これらの試行が失敗した場合は、\connect コマンドを使用して接続パラメータを指定することで、新しい接続を作成できます。

ステータスコマンド

\status コマンドは、現在のグローバル接続に関する情報を表示します。 これには、接続されているサーバー、使用中の文字セット、稼働時間などに関する情報が含まれます。

ソースコマンド

\source コマンドまたはそのエイリアス\. を MySQL Shell 対話モードで使用して、特定のパスにあるスクリプトファイルからコードを実行できます。 例:

\source /tmp/mydata.sql

SQL、JavaScript または Python コードのいずれかを実行できます。 ファイル内のコードはアクティブな言語を使用して実行されるため、SQL コードを処理するには、MySQL Shell が SQL モードである必要があります。

警告

コードはアクティブな言語を使用して実行されるため、現在選択されている実行モード言語とは異なる言語でスクリプトを実行すると、予期しない結果になる可能性があります。

MySQL Shell 8.0.19 からは、mysql クライアントとの互換性のために、SQL モードでのみ、バックスラッシュおよびオプションの SQL デリミタを指定せずに source コマンドを使用してスクリプトファイルからコードを実行できます。source またはエイリアス\. (SQL デリミタを使用しない) は、SQL の MySQL Shell インタラクティブモードでスクリプトを直接実行する場合と、バッチモードで処理された SQL コードのファイルでファイル内からさらにスクリプトを実行する場合の両方で使用できます。 SQL モードの MySQL Shell では、次の 3 つのコマンドのいずれかを使用して、対話モードまたはバッチモードから/tmp/mydata.sql ファイルのスクリプトを実行できるようになりました:

source /tmp/mydata.sql;
source /tmp/mydata.sql
\. /tmp/mydata.sql   

コマンド\source /tmp/mydata.sql も有効ですが、対話型モードでのみ有効です。

対話モードでは、\source\. または source コマンド自体が MySQL Shell 履歴に追加されますが、実行されたスクリプトファイルの内容は履歴に追加されません。

コマンドの使用

\use コマンドを使用すると、アクティブなスキーマを選択できます。次に例を示します:

\use schema_name

\use コマンドでは、グローバル開発セッションがアクティブである必要があります。 \ use コマンドは、現在のスキーマを指定された schema_name に設定し、db 変数を選択されたスキーマを表すオブジェクトに更新します。

履歴コマンド

\history コマンドは、MySQL Shell で以前に発行したコマンドをリストします。 \history を発行すると、履歴エントリが発行された順序で履歴エントリが表示されます。履歴エントリ番号は、\history delete entry_number コマンドで使用できます。

\history コマンドには、次のオプションがあります:

  • \history save を使用して履歴を手動で保存します。

  • \history delete entrynumber を使用して、指定した番号の個々の履歴エントリを削除します。

  • \history delete firstnumber-lastnumber を使用して、指定されたエントリ番号の範囲内の履歴エントリを削除します。 lastnumber が最後に見つかった履歴エントリ番号を超過すると、最後のエントリまでの履歴エントリが削除されます。

  • \history delete number- を使用して、number から最後のエントリまでの履歴エントリを削除します。

  • \history delete -number を使用して、最後のエントリから開始して作業中の指定した数の履歴エントリを削除します。 たとえば、\history delete -10 では、最新の 10 個の履歴エントリが削除されます。

  • \history clear を使用して、履歴全体を削除します。

デフォルトでは、履歴はセッション間で保存されないため、MySQL Shell を終了すると、現在のセッション中に発行した内容の履歴が失われます。 セッション間で履歴を保持する場合は、MySQL Shell history.autoSave オプションを有効にします。 詳細は、セクション5.5「コード履歴」を参照してください。

Rehash コマンド

名前キャッシュのオートコンプリート機能を無効にした場合は、\rehash コマンドを使用してキャッシュを手動で更新します。 たとえば、\use schema コマンドを発行して新しいスキーマをロードした後、\rehash を発行してオートコンプリート名キャッシュを更新します。 このオートコンプリートがデータベースで使用されている名前を認識した後、テーブル名などのテキストをオートコンプリートできます。 セクション5.3「コード自動補完」を参照してください。

オプションコマンド

\option コマンドを使用すると、すべてのモードで MySQL Shellconfiguration オプションをクエリーして変更できます。 \option コマンドを使用して、設定されている構成オプションをリストし、その値が最後にどのように変更されたかを表示できます。 また、これを使用して、セッションに対して、または MySQL Shell 構成ファイルで永続的に、オプションを設定および設定解除することもできます。 手順および構成オプションのリストは、セクション10.4「MySQL Shell オプションの構成」 を参照してください。

ページャコマンド

外部ページャを使用して、オンラインヘルプや SQL クエリーの結果など、画面の長い出力を読み取るように MySQL Shell を構成できます。 セクション4.6「ページャの使用」を参照してください。

Show コマンドと Watch コマンド

\show コマンドは、組込み MySQL Shell レポートまたは MySQL Shell に登録されているユーザー定義レポートのいずれかの名前付きレポートを実行します。 コマンドの標準オプションと、レポートでサポートされているオプションまたは追加の引数を指定できます。 \watch コマンドは、\show コマンドと同じ方法でレポートを実行しますが、Ctrl + C を使用してコマンドを取り消すまで定期的に結果をリフレッシュします。 その手順は、セクション7.1.5「MySQL Shell レポートの実行」を参照してください。

コマンドの編集

\edit (\e) コマンドは、デフォルトのシステムエディタで編集用のコマンドを開き、MySQL Shell で編集したコマンドを実行用に表示します。 このコマンドは、キーの組合せ Ctrl-X Ctrl-E を使用して呼び出すこともできます。 詳細は、セクション5.4「コードの編集」を参照してください。

システムコマンド

\system (\!) コマンドは、コマンドの引数として指定したオペレーティングシステムコマンドを実行し、MySQL Shell のコマンドからの出力を表示します。コマンドを実行できなかった場合、MySQL Shell はエラーを返します。 コマンドからの出力は、オペレーティングシステムによって指定されたとおりに返され、出力を表示するように指定した MySQL ShellJSON ラッピング関数または外部ページャツールでは処理されません。