Questa pagina contiene informazioni su come creare, elencare ed eliminare PostgreSQL
su un'istanza Cloud SQL.
Un'istanza appena creata ha un database postgres
.
Per saperne di più sui database PostgreSQL, consulta
Documentazione di PostgreSQL .
Prima di iniziare
Prima di completare le attività in questa pagina, devi avere:
È stata creata un'istanza Cloud SQL. Per ulteriori informazioni, consulta la sezione Creare istanze .
Se prevedi di utilizzare il client psql per creare o gestire i tuoi database,
devi avere:
Creare un database nell'istanza Cloud SQL
Nota: il database postgres è il database predefinito
database
a cui ti connetti prima di creare altri database. Dopo aver creato un altro database, passa a questo per creare tabelle e inserire dati. Azioni sconsigliate
utilizza il database postgres per i dati della tua applicazione perché viene usato principalmente per scopi amministrativi.
La lunghezza massima del nome del database è 64 caratteri. Per ulteriori informazioni
Per gli altri criteri relativi a questo nome, consulta Identificatori e parole chiave .
Se non specifichi un set di caratteri e regole di confronto quando crei il database,
il database avrà i seguenti valori predefiniti:
Set di caratteri: UTF8
Collazione: en_US.UTF8
Console
Nota: non puoi utilizzare la console Google Cloud per impostare i valori per l'insieme di caratteri e la collating. Per impostare questi valori, utilizza un client psql
per
crea il tuo
per configurare un database. Per ulteriori informazioni sull'utilizzo di questo client per creare il database, consulta i contenuti della scheda Client psql .
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL .
Vai a 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 .
gcloud
Nota: non puoi utilizzare gcloud
per impostare i valori per il carattere
impostare e
le regole di confronto. Per impostare questi valori, utilizza un client psql
per creare il tuo database. Per ulteriori informazioni sull'utilizzo di questo client per creare il database, consulta i contenuti della scheda Client psql .
Per informazioni di riferimento, consulta gcloud
sql databases create
.
gcloud sql databases create DATABASE_NAME \
--instance= INSTANCE_NAME
Nota: non puoi utilizzare Terraform per impostare i valori per il carattere
impostare e
le regole di confronto. Per impostare questi valori, utilizza un client psql
per
crea il tuo
per configurare un database. Per ulteriori informazioni sull'uso di questo client per creare il database,
consulta i contenuti della scheda psql Client .
Per creare un database, utilizza una risorsa Terraform .
Applica le modifiche
Per applicare la configurazione Terraform a un progetto Google Cloud, completa i passaggi nella
le 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 di Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere una directory dedicata (inoltre
chiamato modulo principale ).
In Cloud Shell , crea una directory e un nuovo
all'interno di quella directory. Il nome file deve avere l'estensione
.tf
, ad esempio main.tf
. In questo
tutorial, il file è denominato main.tf
.
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Se stai seguendo un tutorial, puoi copiare il codice di esempio in ogni sezione o passaggio.
Copia il codice campione nel nuovo oggetto main.tf
.
Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata
quando lo snippet Terraform fa parte di una soluzione end-to-end.
Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
Salva le modifiche.
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade
:
terraform init -upgrade
Applica le modifiche
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
Applica la configurazione Terraform eseguendo questo comando e inserendo yes
alla richiesta:
terraform apply
Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". per creare un nuovo messaggio email.
Apri il tuo progetto Google Cloud per visualizzare
i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Nota: gli esempi di Terraform in genere presuppongono che le API richieste siano
nel tuo progetto Google Cloud.
Elimina le modifiche
Per eliminare le modifiche:
Per disabilitare la protezione dall'eliminazione, imposta il file di configurazione Terraform
Argomento deletion_protection
per false
.
deletion_protection = "false"
Applica la configurazione Terraform aggiornata eseguendo il comando seguente
inserendo yes
alla richiesta:
terraform apply
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente
comando e inserendo yes
al prompt:
terraform destroy
REST v1
Nota: non puoi utilizzare le API REST per impostare i valori per l'insieme di caratteri e la collating. Per impostare questi valori, utilizza un client psql
per
crea il tuo
per configurare un database. Per ulteriori informazioni sull'uso di questo client per creare il database,
consulta i contenuti della scheda psql Client .
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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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)
Nota:
il comando seguente presuppone che tu abbia eseguito l'accesso alla CLI gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
.
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 "
}
REST v1beta4
Nota: non puoi utilizzare le API REST per impostare i valori per l'insieme di caratteri e la collating. Per impostare questi valori, utilizza un client psql
per creare il tuo database. Per ulteriori informazioni sull'utilizzo di questo client per creare il database, consulta i contenuti della scheda Client psql .
La seguente richiesta utilizza il metodo
databases:insert
per creare un nuovo database nell'istanza specificata.
Prima di utilizzare i dati della richiesta,
effettua 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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
il seguente comando presuppone che tu abbia eseguito l'accesso all'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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)
Nota:
il comando seguente presuppone che tu abbia eseguito l'accesso alla CLI gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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 "
}
Client psql
Per informazioni di riferimento, consulta CREATE
DATABASE nella documentazione di PostgreSQL.
Per informazioni di contesto e un elenco dei valori dei set di caratteri supportati, consulta i seguenti argomenti nella documentazione di PostgreSQL:
CREATE DATABASE database_name
[[ ENCODING encoding ][ LC_COLLATE lc_collate ]];
Ad esempio: CREATE DATABASE "example_db" WITH OWNER "example_user"
ENCODING 'UTF8' LC_COLLATE = 'pl_PL.utf8' LC_CTYPE = 'pl_PL.utf8' TEMPLATE template0;
Nota: il modello predefinito è template1
.
Tuttavia, psql utilizza template0
perché è l'unico modello
che accetta una codifica e un set di caratteri specifici. Per ulteriori informazioni, consulta Database di modelli .
Elenca i tuoi database
Per elencare tutti i database di un'istanza:
Console
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL .
Vai a 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 confronto, al set di caratteri e al tipo di database.
REST v1
La seguente richiesta utilizza
databases:elenco
per elencare i database di un'istanza.
Quando elenchi i database utilizzando l'API, vedi database di modelli 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,
effettua 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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
.
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)
Nota:
il comando seguente presuppone che tu abbia eseguito l'accesso alla CLI gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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 "
}
REST v1beta4
La seguente richiesta utilizza
databases:elenco
per elencare i database di un'istanza.
Quando elenchi i database utilizzando l'API, vedi
ulteriori database di modelli e un database di sistema che non vengono visualizzati
la console. Non puoi eliminare o gestire il database di sistema.
Prima di utilizzare i dati della richiesta,
effettua 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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
.
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)
Nota:
il comando seguente presuppone che tu abbia eseguito l'accesso alla CLI gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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 "
}
Client psql
Per informazioni di riferimento, consulta elenco .
Quando elenchi i database utilizzando il client psql
, vedrai
ulteriori database di modelli e un database di sistema che non vengono visualizzati
la console. Non puoi eliminare o gestire il database di sistema.
\ l
Eliminare un database
Per eliminare un database nell'istanza Cloud SQL:
Console
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL .
Vai a 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, individua quello da eliminare e
fai clic sull'icona del cestino.
Nella finestra di dialogo Elimina database , inserisci il nome del database.
e fai clic su Elimina .
gcloud
Per informazioni di riferimento, vedi gcloud
sql databases delete
.
gcloud sql databases delete DATABASE_NAME \
--instance= INSTANCE_NAME
REST v1
La seguente richiesta utilizza
databases:elimina
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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
.
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)
Nota:
il comando seguente presuppone che tu abbia eseguito l'accesso alla CLI gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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 "
}
REST v1beta4
La richiesta seguente utilizza il metodo
databases:delete
per eliminare il database specificato.
Prima di utilizzare i dati della richiesta,
effettua 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 delle seguenti opzioni:
curl (Linux, macOS o Cloud Shell)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
oppure utilizzando Cloud Shell ,
che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
.
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)
Nota:
Il comando seguente presuppone che tu abbia eseguito l'accesso a
l'interfaccia a riga di comando gcloud
con il tuo account utente eseguendo
gcloud init
o
gcloud auth login
di Google.
Puoi controllare l'account attualmente attivo eseguendo
gcloud auth list
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 "
}
Client psql
Per informazioni di riferimento, consulta DROP DATABASE
nella documentazione di PostgreSQL.
DROP DATABASE [ database_name ];
Passaggi successivi
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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova Cloud SQL gratuitamente