データベース フラグを構成する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このページでは、Cloud SQL のデータベース フラグを構成する方法について説明し、インスタンスに設定できるフラグの一覧を示します。データベース フラグは、MySQL パラメータの調整、オプションの調整、インスタンスの構成や調整など、多くの操作で使用します。
場合によっては、目的の機能を完全に有効にするために、1 つのフラグの設定だけでなく、別のフラグの設定も必要になることがあります。たとえば、遅いクエリのロギング を有効にするためには、slow_query_log
フラグを on
に設定するだけでなく、 Google Cloud コンソールのログ エクスプローラを使用してログを利用できるように log_output
フラグを FILE
に設定する必要もあります。
データベース インスタンスのフラグを設定、削除、変更すると、データベースが再起動される場合があります。その場合、フラグの値はフラグを削除するまでインスタンスに対して保持されます。インスタンスがレプリカのソースで、インスタンスが再起動されると、レプリカはインスタンスの現在の構成に合わせて再起動します。
データベース フラグを構成する
以降のセクションでは、一般的なフラグ管理タスクについて説明します。
データベース フラグを設定する
コンソール
Google Cloud コンソール で、データベース フラグを設定する Cloud SQL インスタンスを含むプロジェクトを選択します。
インスタンスを開き、[編集 ] をクリックします。
[フラグ ] セクションに移動します。
それまでにインスタンスで設定したことのないフラグを設定するには、[項目を追加 ] をクリックし、プルダウン メニューからフラグを選択して、その値を設定します。
[保存 ] をクリックして、変更を保存します。
[概要] ページの [フラグ ] で、変更を確認します。
gcloud
インスタンスを編集します。
gcloud sql instances patch INSTANCE_NAME --database-flags= FLAG1 = VALUE1 ,FLAG2 = VALUE2
このコマンドでは、以前に設定されたすべてのデータベース フラグが上書きされます。これらを保持し、新しいフラグを追加するには、インスタンスに設定するすべてのフラグの値を含めます。具体的に含まれていないフラグはデフォルト値に設定されます。値のないフラグについては、フラグ名の後に等号(=)を付けておきます。
たとえば、フラグ general_log
、skip_show_database
、wait_timeout
を設定するには、次のコマンドを使用します。
gcloud sql instances patch INSTANCE_NAME \
--database-flags= general_log = on,skip_show_database= on,wait_timeout= 200000
データベース フラグを追加するには、Terraform リソース を使用します。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
Cloud Shell を起動します。
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は .tf
にする必要があります(例: main.tf
)。このチュートリアルでは、このファイルを main.tf
とします。
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した main.tf
にサンプルコードをコピーします。
必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
環境に適用するサンプル パラメータを確認し、変更します。
変更を保存します。
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、-upgrade
オプションを使用します。
terraform init -upgrade
変更を適用する
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
次のコマンドを実行します。プロンプトで「yes
」と入力して、Terraform 構成を適用します。
terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
Google Cloud プロジェクトを開いて 結果を表示します。 Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
注: Terraform のサンプルでは通常、必要な API が Google Cloud プロジェクトで有効になっていることを前提としています。
変更を削除する
変更を削除するには、次の手順を行います。
削除の保護を無効にするには、Terraform 構成ファイルで deletion_protection
引数を false
に設定します。
deletion_protection = "false"
次のコマンドを実行します。プロンプトで「yes
」と入力して、更新された Terraform 構成を適用します。
terraform apply
次のコマンドを実行します。プロンプトで「yes
」と入力して、以前に Terraform 構成で適用されたリソースを削除します。
terraform destroy
REST v1
既存のデータベースのフラグを設定するには:
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags":
[
{
"name": "flag_name ",
"value": "flag_value "
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "[email protected] ",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
たとえば、既存のデータベースに general_log
フラグを設定するには、次のようにします。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags":
[
{
"name": "general_log",
"value": "on"
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "[email protected] ",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
データベースにすでに構成されているフラグがある場合は、以前のコマンドを変更するときにそれらのフラグも含めるようにします。PATCH
コマンドは、既存のフラグをリクエストで指定されているフラグで上書きします。
REST v1beta4
既存のデータベースのフラグを設定するには:
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags":
[
{
"name": "flag_name ",
"value": "flag_value "
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "[email protected] ",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
たとえば、既存のデータベースに general_log
フラグを設定するには、次のようにします。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags":
[
{
"name": "general_log",
"value": "on"
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "[email protected] ",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
データベースにすでに構成されているフラグがある場合は、以前のコマンドを変更するときにそれらのフラグも含めるようにします。PATCH
コマンドは、既存のフラグをリクエストで指定されているフラグで上書きします。
すべてのフラグをデフォルト値にクリアする
コンソール
Google Cloud コンソール で、すべてのフラグをクリアする Cloud SQL インスタンスが含まれているプロジェクトを選択します。
インスタンスを開き、[編集 ] をクリックします。
[データベースのフラグ ] セクションを開きます。
表示されているフラグの横にある X をクリックします。
[保存 ] をクリックして、変更を保存します。
gcloud
インスタンスのすべてのフラグをデフォルト値にクリアします。
gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags
インスタンスを再起動する確認を求められます。
REST v1
既存のインスタンスのフラグをすべてクリアするには:
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags": []
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "[email protected] ",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
既存のインスタンスのフラグをすべてクリアするには:
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
リクエストの本文(JSON):
{
"settings":
{
"databaseFlags": []
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id "