データベースの作成と管理
  
      
    
  
  
  
  
  
    
  
  
    
    
    
    
  
  
ここでは、Cloud SQL インスタンス上の SQL Server データベースの作成、一覧取得、削除について説明します。
  
新しく作成したインスタンスには sqlserver データベースがあります。
  
SQL Server データベースの作成と関連トピックについては、
SQL Server のドキュメントをご覧ください。
インスタンス内のデータベースに使用される照合タイプのデフォルト値の設定については、インスタンスの作成をご覧ください。
始める前に
ここで説明するタスクの前に、次のことを行っておく必要があります。
- Cloud SQL インスタンスを作成しておきます。詳細については、インスタンスの作成をご覧ください。
 
sqlcmd クライアントを使用してデータベースを作成または管理する場合は、次のことを行っておく必要があります。
sqlcmd クライアントでインスタンスへのアクセスを構成し、接続しておきます。 
Cloud SQL インスタンスにデータベースを作成する
コンソール
  - 
 Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
Cloud SQL の [インスタンス] に移動
 
  - 
インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
 
  - SQL ナビゲーション メニューから [データベース] を選択します。
 
  - [データベースを作成] をクリックします。
 
  
  - [新しいデータベース] ダイアログで、データベースの名前を指定します。
 
  
  - [作成] をクリックします。
 
gcloud
リファレンス情報については、gcloud
  sql databases create をご覧ください。
  
SQL Server の照合については、SQL Server ドキュメントの照合順序と Unicode のサポートをご覧ください。
gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME \
[--charset=CHARSET] \
[--collation=COLLATION]
    データベースを作成するには、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 構成ファイルで 
deletion_protection 引数を false に設定します。deletion_protection =  "false"
             
            - 次のコマンドを実行します。プロンプトで「
yes」と入力して、更新された Terraform 構成を適用します。terraform apply
             
         
         
            - 
             
次のコマンドを実行します。プロンプトで「yes」と入力して、以前に Terraform 構成で適用されたリソースを削除します。
terraform destroy
             
          
REST v1
以下のリクエストでは、databases:insert メソッドを使用して、指定したインスタンスに新しいデータベースを作成します。
  
  
  
    
    
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  - database-name: Cloud SQL インスタンス内のデータベースの名前
 
HTTP メソッドと URL:
  POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases
リクエストの本文(JSON):
  
{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
    
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  curl -X POST \
     -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/databases"
  PowerShell(Windows)
  
  
    
      
    
  
  
    
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "CREATE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
REST v1beta4
以下のリクエストでは、databases:insert メソッドを使用して、指定したインスタンスに新しいデータベースを作成します。
  
  
  
    
    
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  - database-name: Cloud SQL インスタンス内のデータベースの名前
 
HTTP メソッドと URL:
  POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases
リクエストの本文(JSON):
  
{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
    
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  curl -X POST \
     -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/databases"
  PowerShell(Windows)
  
  
    
      
    
  
  
    
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "CREATE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
 
データベースの一覧を表示する
インスタンス上のすべてのデータベースの一覧を取得するには:
コンソール
   - 
 Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
Cloud SQL の [インスタンス] に移動
 
   - 
インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
 
   - 左側のメニューから、[データベース] をクリックします。[データベース] ページには、データベースが照合タイプ、文字セット、データベース タイプとともに一覧表示されます。
 
REST v1
次のリクエストでは、databases:list メソッドを使用して、インスタンスのデータベースを一覧表示します。
API を使用してデータベースを一覧表示すると、コンソールでは表示されない追加のテンプレート データベースとシステム データベースが表示されます。システム データベースを削除したり、管理したりすることはできません。
  
  
  
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  HTTP メソッドと URL:
  GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases"
  PowerShell(Windows)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#database",
  "charset": "utf8",
  "collation": "utf8_general_ci",
  "etag": "etag",
  "name": "sys",
  "instance": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/sys",
  "project": "project-id"
}
REST v1beta4
次のリクエストでは、databases:list メソッドを使用して、インスタンスのデータベースを一覧表示します。
API を使用してデータベースを一覧表示すると、コンソールでは表示されない追加のテンプレート データベースとシステム データベースが表示されます。システム データベースを削除したり、管理したりすることはできません。
  
  
  
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  HTTP メソッドと URL:
  GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases"
  PowerShell(Windows)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#database",
  "charset": "utf8",
  "collation": "utf8_general_ci",
  "etag": "etag",
  "name": "sys",
  "instance": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/sys",
  "project": "project-id"
}
 
データベースを削除する
Cloud SQL インスタンスでデータベースを削除するには、次のようにします。
コンソール
  - 
 Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
Cloud SQL の [インスタンス] に移動
 
  - 
インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
 
  - 左側のメニューから、[データベース] をクリックします。
 
  - データベースのリストで削除するデータベースを選択し、ごみ箱アイコンをクリックします。
 
  - [データベースの削除] ダイアログでデータベースの名前を入力し、[削除] をクリックします。
 
REST v1
  以下のリクエストでは、databases:delete メソッドを使用して、指定されたデータベースを削除します。
  
  
  
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  - database-name: Cloud SQL インスタンス内のデータベースの名前
 
HTTP メソッドと URL:
  DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name"
  PowerShell(Windows)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
REST v1beta4
  以下のリクエストでは、databases:delete メソッドを使用して、指定されたデータベースを削除します。
  
  
  
  
  
  
  
    
  
リクエストのデータを使用する前に、次のように置き換えます。
  - project-id: プロジェクト ID
 
  - instance-id: インスタンス ID
 
  - database-name: Cloud SQL インスタンス内のデータベースの名前
 
HTTP メソッドと URL:
  DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name
リクエストを送信するには、次のいずれかのオプションを展開します。
  curl(Linux、macOS、Cloud Shell)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name"
  PowerShell(Windows)
  
  
    
      
    
  
  
  次のコマンドを実行します。
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name" | Select-Object -Expand Content
    次のような JSON レスポンスが返されます。
    
レスポンス
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
 
次のステップ
  
    
      使ってみる
      
        
          
        
      
        Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud SQL のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
        
      
      
      
        
          Cloud SQL の無料トライアル
        
      
     
   
  
  
  
    
  
  
 
  
    
    
      
       
         
  
       
    
    
  
  
  特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
  最終更新日 2025-10-19 UTC。
  
  
    
    
    
      
  
    
  
  
    
      [[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-10-19 UTC。"],[],[]]