Questa pagina contiene informazioni su come creare, elencare ed eliminare MySQL
su un'istanza Cloud SQL.
Un'istanza appena creata ha quattro database di sistema:
information_schema
: fornisce l'accesso ai metadati del database e alle informazioni sul server MySQL.
mysql
: lo schema del sistema. Contiene tabelle che archiviano le informazioni richieste dal server MySQL in esecuzione.
performance_schema
: una funzionalità per monitorare l'esecuzione del server MySQL a basso livello.
sys
: contiene un insieme di oggetti che consente ai database e agli sviluppatori di interpretare i dati raccolti dallo schema delle prestazioni.
Per ulteriori informazioni sui database MySQL, consulta
Documentazione MySQL .
Prima di iniziare
Prima di completare le attività in questa pagina, devi avere:
Se prevedi di utilizzare il client mysql per creare o gestire i tuoi database,
devi avere:
crea un database sull'istanza Cloud SQL
Nota : la lunghezza massima del nome del database è 64 caratteri.
Per ulteriori informazioni su altri criteri per questo nome, consulta Nomi degli oggetti schema .
Se non specifichi un set di caratteri personalizzato e regole di confronto quando crei il database,
il database avrà i seguenti valori predefiniti:
MySQL 5.6, 5.7 : (creato con la console Google Cloud, API Cloud SQL Admin, gcloud CLI ,
Terraform o mysql).
Set di caratteri: utf8
Regole di confronto: utf8_general_ci
MySQL 8.0.x (creato con la console Google Cloud)
Set di caratteri: utf8
Regole di confronto: utf8_general_ci
MySQL 8.0.x (creato con l'API Cloud SQL Admin, gcloud CLI ,
Terraform o mysql).
Set di caratteri: utf8mb4
Regole di confronto: utf8mb4_0900_ai_ci
Se devi modificare il set di caratteri o le regole di confronto
configurazione del database dopo la creazione,
consulta Aggiornare il set di caratteri e le regole di confronto per un database .
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.
Seleziona Database dal menu di navigazione SQL.
Fai clic su Crea database .
Nella finestra di dialogo Crea un database , specifica
nome del database e, facoltativamente, il set di caratteri e le regole di confronto.
Per ulteriori informazioni su set di caratteri e regole di confronto, consulta
Set di caratteri, Collazioni, Unicode .
Fai clic su Crea .
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
dove 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 in Terraform
di configurazione del deployment.
Prepara la directory
Ogni file di configurazione Terraform deve avere una directory (inoltre
chiamato modulo principale ).
In Cloud Shell , crea una directory e un nuovo
all'interno di quella directory. Il nome del file deve contenere
.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 campione in ogni sezione o passaggio.
Copia il codice campione nel nuovo oggetto main.tf
.
Facoltativamente, copia il codice da GitHub. 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
Facoltativamente, per utilizzare la versione più recente del provider Google, includi -upgrade
:
terraform init -upgrade
Applica le modifiche
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
che l'aggiornamento soddisfi le 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 progetto Google Cloud per visualizzare
i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti
create o aggiornate da Terraform.
di Gemini Advanced.
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, nel file di configurazione Terraform imposta la classe
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 tua configurazione Terraform eseguendo questo comando
e inserendo yes
al prompt:
terraform destroy
REST v1
La seguente richiesta utilizza
databases:inserire
per creare un nuovo database sull'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/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
.
ed esegui questo comando:
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 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
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$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
La seguente richiesta utilizza
databases:inserire
per creare un nuovo database sull'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 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
.
ed esegui questo comando:
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 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
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$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 mysql
Per informazioni di riferimento, consulta CREARE DATABASE
nella documentazione di MySQL.
Per ulteriori informazioni su set di caratteri e regole di confronto, consulta
Set di caratteri, Collazioni, Unicode .
CREATE DATABASE database_name
[[CHARACTER SET charset_name][COLLATE collation_name]];
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
Nella pagina Database sono elencati i database e il tipo di regole di confronto.
set di caratteri e 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
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/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 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 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 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 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 mysql
Per informazioni di riferimento, vedi MOSTRA DATABASE nella documentazione di MySQL.
SHOW DATABASES;
Elimina un database
Per eliminare un database sull'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 .
di Gemini Advanced.
Nota: l'eliminazione di un database rimuove tutti i file al suo interno,
inclusi eventuali file non usati direttamente dal database. Esempi di questi file sono
#sql-*
file creati da operazioni ALTER TABLE interrotte in
MySQL 5.6 e MySQL 5.7.
gcloud
Per informazioni di riferimento, vedi gcloud
sql databases delete
.
gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME
Nota: l'eliminazione di un database rimuove tutti i file al suo interno,
inclusi eventuali file non usati direttamente dal database. Esempi di questi file sono
#sql-*
file creati da operazioni ALTER TABLE interrotte in
MySQL 5.6 e MySQL 5.7.
REST v1
La seguente richiesta utilizza
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/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 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/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 seguente richiesta utilizza
databases:delete
per eliminare il database specificato.
Nota: l'eliminazione di un database rimuove tutti i file al suo interno,
inclusi eventuali file non usati direttamente dal database. Esempi di questi file sono
#sql-*
file creati da operazioni ALTER TABLE interrotte in
MySQL 5.6 e MySQL 5.7.
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 mysql
Per informazioni di riferimento, consulta DROP DATABASE
nella documentazione di MySQL.
DROP DATABASE [database_name];
Nota: se la directory del database contiene file non utilizzati direttamente
dal database, il comando DROP DATABASE
genererà errori
indicando che non è stato possibile eliminare la directory del database, ad esempio:
Errore durante l'eliminazione del database (impossibile eseguire il rmdir './database_name ', errno: 39)
Errore durante l'eliminazione del database (impossibile eseguire il rmdir './database_name ', errno: 17)
di Gemini Advanced.
Esempi di questi file sono #sql-*
file creati dall'interruzione
Operazioni ALTER TABLE in MySQL 5.6 e MySQL 5.7. Per eliminare questi file e
completare l'operazione DROP DATABASE, ripeti l'operazione utilizzando uno dei
Altri metodi: la console, il comando gcloud
o l'API REST
chiamata.
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