Questa pagina contiene informazioni su creazione, elenco ed eliminazione di database SQL Server su un'istanza Cloud SQL.
Un'istanza appena creata ha un database sqlserver
.
Per informazioni sull'impostazione di un valore predefinito per il tipo di collation utilizzato per i database in un'istanza, vedi Creazione di istanze.
Prima di iniziare
Prima di completare le attività in questa pagina, devi:
- È stata creata un'istanza Cloud SQL. Per saperne di più, consulta Creazione di istanze.
Se prevedi di utilizzare il client sqlcmd per creare o gestire i tuoi database, devi disporre di:
- Accesso configurato e connessione all'istanza con un client
sqlcmd
.
Crea un database sull'istanza Cloud SQL
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Database dal menu di navigazione SQL.
- Fai clic su Crea database.
- Nella finestra di dialogo Nuovo database, specifica il nome del database.
- Fai clic su Crea.
Per informazioni di riferimento, vedi gcloud
sql databases create
.
Per informazioni sulle regole di confronto in SQL Server, consulta Supporto di regole di confronto e Unicode nella documentazione di SQL Server.
gcloud sql databases createDATABASE_NAME \ --instance=INSTANCE_NAME \ [--charset=CHARSET ] \ [--collation=COLLATION ]
Per creare un database, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=
PROJECT_ID Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file viene denominatomain.tf
.mkdir
DIRECTORY && cdDIRECTORY && touch main.tf -
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, imposta l'argomento
deletion_protection
sufalse
nel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yes
al prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform destroy
La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /databases
Corpo JSON della richiesta:
{ "project": "project-id ", "instance": "instance-id ", "name": "database-name " }
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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)
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /databases
Corpo JSON della richiesta:
{ "project": "project-id ", "instance": "instance-id ", "name": "database-name " }
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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)
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
Elenca i tuoi database
Per elencare tutti i database di un'istanza:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Database nel menu a sinistra. La pagina Database elenca i database insieme al tipo di regole di confronto, al set di caratteri e al tipo di database.
Per informazioni di riferimento, vedi gcloud
sql databases list
.
gcloud sql databases list \ --instance=INSTANCE_NAME
La seguente richiesta utilizza il metodo databases:list per elencare i database per un'istanza.
Quando elenchi i database utilizzando l'API, vengono visualizzati database modello aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /databases
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
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)
Esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
La seguente richiesta utilizza il metodo databases:list per elencare i database per un'istanza.
Quando elenchi i database utilizzando l'API, vengono visualizzati database modello aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /databases
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
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)
Esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
Eliminare un database
Per eliminare un database sull'istanza Cloud SQL:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Database nel menu a sinistra.
- Nell'elenco dei database, trova quello che vuoi eliminare e fai clic sull'icona del cestino.
- Nella finestra di dialogo Elimina database, inserisci il nome del database e poi fai clic su Elimina.
Per informazioni di riferimento, vedi gcloud
sql databases delete
.
gcloud sql databases deleteDATABASE_NAME \ --instance=INSTANCE_NAME
La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /databases/database-name
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
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)
Esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /databases/database-name
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
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)
Esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "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 " }
Passaggi successivi
- Gestisci gli utenti per la tua istanza.
- Importa i dati nell'istanza.
- Crea tabelle (motore di database).
Provalo
Se non conosci Google Cloud, crea un account per valutare le prestazioni di Cloud SQL in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti senza addebiti per l'esecuzione, il test e il deployment dei workload.
Prova Cloud SQL gratuitamente