The Wayback Machine - https://web.archive.org/web/20181027082245/https://cloud.google.com/sql/docs/mysql/flags

データベース フラグを設定する

このページでは、Cloud SQL のデータベース フラグを設定する方法について説明し、インスタンスに対して設定できるフラグの一覧も示します。データベース フラグを使用すると、MySQL パラメータやオプションの指定内容を変更できる他、インスタンスの構成や調整を行うこともできます。

場合によっては、目的の機能を完全に有効にするために、1 つのフラグの設定だけでなく、別のフラグの設定も必要になることがあります。たとえば、遅いクエリのロギングを有効にするには、slow_query_log フラグを on に設定するだけでなく、Google Cloud Platform Console のログビューアでログを利用できるように log_output フラグを FILE に設定する必要もあります。

インスタンスのフラグを設定、削除、変更すると、インスタンスが再起動される場合があります。その場合、フラグの値はフラグを削除するまでインスタンスに対して保持されます。

データベース フラグを設定する

データベース フラグの設定

Console

  1. Google Cloud Platform Console で、新しい GCP Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを開き、[編集] をクリックします。
  3. 下方向にスクロールして [フラグ] セクションを表示します。
  4. それまでにインスタンスで設定したことのないフラグを設定するには、[項目を追加] をクリックし、プルダウン メニューからフラグを選択して、その値を設定します。
  5. [保存] をクリックして、変更を保存します。
  6. [概要] ページの [フラグ] で、変更を確認します。

gcloud

インスタンスを編集します。

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

値のないフラグについては、フラグ名の後に等号(=)を付けておきます。インスタンス上で設定するすべてのフラグの値を含めます。含まれていないフラグはデフォルト値に戻されます。

たとえば、general_logskip_show_databasewait_timeout などのフラグを設定するには、次のコマンドを使用できます。

gcloud sql instances patch [INSTANCE_NAME] --database-flags \
    general_log=on,skip_show_database=,wait_timeout=200000

cURL

既存のインスタンスのフラグを設定するには:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings" : {"databaseFlags" :
         [{ "name": "<FLAG-NAME>",  "value": "<FLAG-VALUE>" }]}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

以下は、具体例として既存のインスタンスの general_log フラグを設定する方法を示したものです。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
       --header 'Content-Type: application/json' \
       --data '{"settings" : {"databaseFlags" : [{ "name": "general_log",  "value": "on" }]}}' \
       -X PATCH \
       https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

インスタンスにすでに設定されているフラグがある場合は、以前のコマンドを変更するときにそれらのフラグも含めるようにします。PATCH コマンドは、既存のフラグをリクエストで指定されているフラグで上書きします。

すべてのフラグをデフォルト値にクリアする

Console

  1. Google Cloud Platform Console で、新しい GCP Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを開き、[編集] をクリックします。
  3. [データベースのフラグ] セクションを開きます。
  4. 表示するすべてのフラグの横にある [X] をクリックします。
  5. [保存] をクリックして、変更を保存します。

gcloud

インスタンスのすべてのフラグをデフォルト値にクリアします。

gcloud sql instances patch [INSTANCE_NAME] --clear-database-flags

インスタンスを再起動する確認を求められます。

cURL

既存のインスタンスのフラグをすべてクリアするには:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
       --header 'Content-Type: application/json' \
       --data '{"settings" : {"databaseFlags" : []}}' \
       -X PATCH \
       https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

データベース フラグの現在の値を表示する

すべての MySQL システム変数の現在値を表示するには、mysql クライアントでインスタンスにログインし、次のステートメントを入力します。

 SHOW VARIABLES;

サポートされているフラグのみ値を変更できます(下記を参照)。

インスタンスに対して設定されているデータベース フラグを確認する

Cloud SQL インスタンスに対して設定されているフラグを確認するには:

Console

  1. Google Cloud Platform Console で、新しい GCP Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを選択して、[インスタンスの概要] ページを開きます。

    設定済みのデータベース フラグは、[データベースのフラグ] セクションに一覧表示されます。

gcloud

インスタンスの状態を取得します。

gcloud sql instances describe [INSTANCE_NAME]

出力では、データベース フラグは settings の下にコレクション databaseFlags として一覧表示されます。出力でのフラグの表示の詳細については、インスタンスのリソースの表示をご覧ください。

cURL

インスタンスに設定されているフラグを一覧表示するには:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
       --header 'Content-Type: application/json' \
       -X GET \
       https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>?fields=settings

出力で、databaseFlags フィールドを探します。

サポートされているフラグ

Cloud SQL でサポートされているフラグは、リクエストされる頻度が高い MySQL フラグです。フラグによっては、Cloud SQL でのサポート範囲が、対応する MySQL の変数やオプションのサポート範囲とは異なることがあるので注意してください。

注記されている場合を除き、いずれのフラグも Google Cloud SQL によってサポートされる MySQL のすべてのバージョンに適用されます。

Cloud SQL フラグ 有効な値と注意事項 再起動が必要
auto_increment_increment integer 165535 ×
auto_increment_offset integer 165535 ×
binlog_row_image enumeration full(デフォルト)、minimalnoblob ×
character_set_server string utf8 または utf8mb4
default_time_zone string -12:59~+13:00 の値を指定します。先頭のゼロは必要です。
event_scheduler boolean on | off

第 1 世代インスタンスの場合、インスタンス作成時には設定できません。

Event Scheduler を使用している場合、スケジュールされたイベントが実行されるように、インスタンスのアクティベーション ポリシーALWAYS に構成する必要があります。

×
ft_max_word_len integer 10252
ft_min_word_len integer 116
ft_query_expansion_limit integer 01000
general_log boolean on | off

汎用ログの詳細については、ヒントをご覧ください。

×
group_concat_max_len integer 417179869184 ×
innodb_autoinc_lock_mode integer 02
innodb_file_per_table boolean on | off

このフラグの詳細については、ヒントをご覧ください。

×
innodb_ft_max_token_size integer 10252

MySQL 5.6 以降のバージョンでのみサポートされます。

innodb_ft_min_token_size integer 016

MySQL 5.6 以降のバージョンでのみサポートされます。

innodb_ft_server_stopword_table string MySQL 5.6 以降のバージョンでのみサポートされます。 ×
innodb_large_prefix boolean on | off

MySQL 5.5 と 5.6 でのみサポートされます。

×
innodb_lock_wait_timeout integer 11073741824 ×
innodb_print_all_deadlocks boolean on | off ×
interactive_timeout integer 131536000 ×
local_infile boolean on | off ×
lock_wait_timeout integer 131536000 ×
log_bin_trust_function_creators boolean on | off ×
log_output set FILE | TABLE | NONE ×
log_queries_not_using_indexes boolean on | off ×
long_query_time float 030000000

Cloud SQL では、必要に応じて、このフラグを 1 未満に設定できます。

×
lower_case_table_names integer 0 または 1

ほとんどの場合、デフォルト値の 0 を使用する必要があります。これによりテーブル名とデータベース名で大文字と小文字が区別されるようになります。このフラグの値を変更する場合は、この変更が既存のテーブルとデータベースに与える影響も必ず理解しておいてください。

max_allowed_packet integer 163841073741824 ×
max_heap_table_size integer 1638467108864

このフラグについて詳しくは、ヒントをご覧ください。

×
max_prepared_stmt_count integer 01048576 ×
optimizer_search_depth integer 062 ×
パフォーマンス スキーマ boolean on | off(デフォルト)

このフラグの値を変更するには、API を使用する必要があります。階層サイズが db-n1-standard-8 または db-n1-highmem-4 より小さいインスタンスでは、このフラグを有効にできません。このフラグが有効な場合は、階層サイズをこのフラグをサポートしないサイズに変更できません。まず、このフラグを無効にする必要があります。第 1 世代インスタンスではサポートされていません。

query_cache_limit integer 0223338299392 ×
query_cache_size integer 0223338299392

このフラグについて詳しくは、ヒントをご覧ください。

×
query_cache_type enumeration 02

このフラグについて詳しくは、ヒントをご覧ください。

read_only boolean on | off

レプリカには影響しません。

×
show_compatibility_56 boolean on | off

MySQL 5.7 でのみサポートされます。

×
skip_show_database flag on | off
slow_query_log boolean on | off

遅いクエリのログの詳細については、ヒントをご覧ください。

×
sql_mode string ANSI などの複合モードを含め、有効な値については、MySQL ドキュメントのサーバー SQL モードをご覧ください。選択できるモードは 1 つのみです。 NO_DIR_IN_CREATENO_ENGINE_SUBSTITUTION はサポートされていません。 ×
tmp_table_size integer

102467108864

このフラグについて詳しくは、ヒントをご覧ください。

×
wait_timeout integer 131536000 ×

フラグの使用に関するヒント

general_log、slow_query_log

general または slow query ログを使用可能にするには、対応するフラグを有効にして、log_output フラグを FILE に設定します。こうすると、Google Cloud Platform Console のログビューアを使用してログ出力を閲覧できるようになります。Stackdriver Logging の料金が適用されることに注意してください。

log_outputNONE に設定されていると、ログにアクセスできません。log_outputTABLE に設定すると、ログ出力はデータベースのテーブルに設定されます。このテーブルが大きくなると、インスタンスの再起動時間に影響を与えたり、インスタンスが SLA の対象外になったりする可能性があります。このため、TABLE オプションは推奨されません。必要に応じて、API を使用してログテーブルを切り捨てることができます。詳しくは、instances.truncateLog のリファレンス ページをご覧ください。

第 1 世代インスタンスでは、mysql.general_log テーブルまたは mysql.slow_log テーブルが非常に大きくなると、インスタンスの再起動後に接続が異常終了することがあります。この問題を回避するため、ログのサイズが 128 MB より大きい場合、general_logslow_query_log の設定は起動時に無視されます。そのため、第 1 世代インスタンスでは、これらのフラグを一時的にのみ有効にするか、テーブルを定期的に切り捨てて小さいサイズに保つことをおすすめします。必要であれば、INSERT ... SELECT を使用して、mysql.general_log テーブルの内容を保存することもできます。

innodb_file_per_table

このフラグは、MySQL 5.5 ではデフォルトで OFF に設定され、それより後のすべてのバージョンではデフォルトで ON に設定されます。

max_heap_table_size、tmp_table_size

インスタンスが処理する同時クエリの数に対して、tmp_table_size および max_heap_table_size に設定する値が大きすぎると、インスタンスの使用可能なメモリが不足する可能性があります。メモリが不足すると、インスタンスがクラッシュして再起動します。

これらのフラグの値によっては、インスタンスがその SLA 範囲外になる可能性があります。 詳細をご覧ください。これらのフラグの使用方法については、MySQL での内部一時テーブルの使用方法および MEMORY Storage Engine をご覧ください。

query_cache_size、query_cache_type

これらのフラグの値によっては、インスタンスがその SLA 範囲外になる可能性があります。 詳細をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Morty Proxy This is a proxified and sanitized view of the page, visit original site.