Creare istanze

Questa pagina descrive come creare un'istanza Cloud SQL per MySQL.

Per informazioni dettagliate su tutte le impostazioni dell'istanza, vedi Impostazioni dell'istanza.

Un'istanza appena creata ha quattro database di sistema:

  • information_schema: fornisce l'accesso ai metadati del database, informazioni sul server MySQL.
  • mysql: lo schema di sistema. Contiene tabelle che archiviano le informazioni richieste dal server MySQL durante l'esecuzione.
  • performance_schema: una funzionalità per il monitoraggio dell'esecuzione di MySQL Server a un basso livello.
  • sys: contiene un insieme di oggetti che aiutano gli amministratori di database e gli sviluppatori a interpretare i dati raccolti dallo schema delle prestazioni.

Il numero massimo di istanze che puoi avere in un singolo progetto dipende dall'architettura di rete di queste istanze:

  • Nuova architettura di rete SQL: puoi avere fino a 1000 istanze per progetto.
  • Architettura di rete SQL precedente: puoi avere fino a 100 istanze per progetto.
  • Utilizzo di entrambe le architetture: il limite sarà compreso tra 100 e 1000, a seconda della distribuzione delle istanze nelle due architetture.

Invia una richiesta di assistenza per richiedere un aumento. Le repliche di lettura vengono conteggiate come istanze.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Installa la gcloud CLI.

  4. Configura gcloud CLI per utilizzare la tua identità federata.

    Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.

  5. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  6. Assicurati di disporre dei seguenti ruoli nel tuo account utente:

    Vai alla pagina IAM

    Scopri di più su ruoli e autorizzazioni.

Creare un'istanza MySQL

Console

  1. Nella Google Cloud console, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Crea istanza.
  3. Seleziona Nuova istanza.
  4. Nel riquadro Scegli il motore del database della pagina Crea un'istanza, fai clic su Scegli MySQL.
  5. Nella sezione Scegli una versione di Cloud SQL della pagina Crea un'istanza SQL Server, seleziona la versione di Cloud SQL per la tua istanza: Enterprise o Enterprise Plus.

    Per saperne di più sulle versioni di Cloud SQL, consulta Introduzione alle versioni di Cloud SQL.

  6. Seleziona il preset della versione per l'istanza. Per visualizzare i preset disponibili, fai clic sul menu Preset edizione.
  7. Nella sezione Informazioni istanza, seleziona la versione del database per la tua istanza. Per visualizzare le versioni disponibili, fai clic sul menu Versione del database.
    • Se selezioni MySQL 8.0 e MySQL 8.0.35 o versioni successive per la versione secondaria, la casella di controllo Abilita upgrade automatico della versione secondaria viene selezionata automaticamente per la tua istanza. Se non vuoi abilitare l'upgrade automatico della versione, deseleziona la casella di controllo.
    • Se selezioni MySQL 8.0 e MySQL 8.0.34 o versioni precedenti per la versione secondaria, la casella di controllo Abilita upgrade automatico della versione secondaria non è disponibile.

    La versione del database non può essere modificata dopo la creazione dell'istanza.

  8. Nel campo ID istanza del riquadro Informazioni istanza, inserisci un ID per l'istanza.

    Non è necessario includere l'ID progetto nel nome dell'istanza. Questa operazione viene eseguita automaticamente ove opportuno (ad esempio, nei file di log).

  9. Imposta una password per l'utente root.

    Sebbene esista un'opzione per impostare Nessuna password, questa non è consigliata per motivi di sicurezza.

  10. Per visualizzare la password in dati in chiaro, fai clic sull'icona Mostra password.

    Puoi inserire la password manualmente o fare clic su Genera per fare in modo che Cloud SQL crei automaticamente una password.

  11. (Facoltativo) Configura una policy per le password per l'istanza come segue:
    1. Seleziona la casella di controllo Abilita policy per le password.
    2. Fai clic sul pulsante Imposta criteri per le password, imposta una o più delle seguenti opzioni e fai clic su Salva.
      • Lunghezza minima: specifica il numero minimo di caratteri che deve avere la password.
      • Complessità della password: verifica se la password è una combinazione di caratteri minuscoli, maiuscoli, numerici e non alfanumerici.
      • Limita riutilizzo password: specifica il numero di password precedenti che non puoi riutilizzare.

        Supportato solo su Cloud SQL per MySQL 8.0 e versioni successive.

      • Non consentire il nome utente: impedisce l'utilizzo del nome utente nella password.
  12. Nella sezione Scegli la disponibilità per regione e zona, seleziona la regione e la zona per l'istanza. La disponibilità delle regioni potrebbe variare in base alla versione di Cloud SQL per MySQL. Per ulteriori informazioni, vedi Informazioni sulle impostazioni per le istanze.

    Posiziona l'istanza nella stessa regione delle risorse che vi accedono. La regione selezionata non può essere modificata in futuro. Nella maggior parte dei casi, non è necessario specificare una zona.

    Se stai configurando l'istanza per l'alta affidabilità, puoi selezionare una zona principale e una secondaria.

    Quando la zona secondaria viene utilizzata durante la creazione dell'istanza, si applicano le seguenti condizioni:

    • Le zone sono impostate per impostazione predefinita su Any per la zona principale e Any (different from primary) per la zona secondaria.
    • Se vengono specificate sia la zona primaria che quella secondaria, devono essere zone distinte.
  13. Nella sezione Personalizza la tua istanza, aggiorna le impostazioni della tua istanza. Fai clic su Mostra opzione di configurazione per visualizzare i gruppi di impostazioni. Poi espandi i gruppi per cui vuoi rivedere e personalizzare le impostazioni. A destra viene visualizzato un riepilogo di tutte le opzioni selezionate. La personalizzazione di queste impostazioni dell'istanza è facoltativa. I valori predefiniti vengono assegnati in tutti i casi in cui non vengono apportate personalizzazioni.

    La tabella seguente fornisce un rapido riferimento alle impostazioni dell'istanza. Per ulteriori dettagli su ciascuna impostazione, consulta la pagina Impostazioni per le istanze.

    Impostazione Note
    Tipo di macchina
    Tipo di macchina Seleziona Con core condiviso o Con core dedicato. Per Shared Core, ogni tipo di macchina è classificato in base al numero di CPU (core) e alla quantità di memoria per l'istanza.
    Core Il numero di vCPU per l'istanza. Scopri di più.
    Memoria La quantità di memoria per l'istanza, in GB. Scopri di più.
    Personalizzato Per il tipo di macchina Core dedicato, anziché selezionare una configurazione predefinita, seleziona il pulsante Personalizzata per creare un'istanza con una configurazione personalizzata. Quando selezioni questa opzione, devi selezionare il numero di core e la quantità di memoria per l'istanza. Scopri di più.
    Cache dei dati
    Abilita la cache dei dati Per impostazione predefinita, l'opzione per abilitare la cache dei dati viene selezionata automaticamente per le istanze Cloud SQL per MySQL Enterprise Plus. Se non vuoi abilitare la cache dei dati, deseleziona la casella di controllo Abilita la cache dei dati. Per ulteriori informazioni sulla cache dei dati, vedi Cache dei dati.
    Spazio di archiviazione
    Tipo di archiviazione Determina se l'istanza utilizza l'archiviazione SSD o HDD. Scopri di più.
    Capacità dello spazio di archiviazione Quantità di spazio di archiviazione di cui è stato eseguito il provisioning per l'istanza. Scopri di più.
    Abilita aumenti automatici dello spazio di archiviazione Determina se Cloud SQL fornisce automaticamente più spazio di archiviazione per l'istanza quando lo spazio libero è in esaurimento. Scopri di più.
    Crittografia
    Crittografia gestita da GoogleL'opzione predefinita.
    Chiave di crittografia gestita dal cliente (CMEK)Seleziona per utilizzare la chiave con Google Cloud Key Management Service. Scopri di più.
    Connessioni
    IP privato Aggiunge un indirizzo IP privato per l'istanza. Scegli una connessione di accesso privato ai servizi, una connessione Private Service Connect o entrambe per la tua istanza. La tua selezione fornisce la connessione di rete privata per la tua istanza. In tutti i casi, è necessaria una configurazione aggiuntiva.

    Per selezionare e configurare l'accesso privato ai servizi:

    1. Seleziona la casella di controllo Accesso privato ai servizi (PSA).
    2. Dal menu a discesa Rete VPC, seleziona il nome della rete a cui si connette la tua istanza.
    3. Dal menu a discesa Intervallo IP allocato, seleziona Automatico o un intervallo IP denominato specifico dal menu a discesa.

    Per ulteriori informazioni sulla configurazione dell'accesso privato ai servizi, consulta Configurare l'accesso privato ai servizi. La tua istanza può avere sia un indirizzo IP pubblico che un indirizzo IP privato.

    Per selezionare e configurare Private Service Connect, procedi nel seguente modo:

    1. Seleziona la casella di controllo Private Service Connect (PSC).
    2. Fai clic su Aggiungi un endpoint.
    3. Nella sezione Configurazione endpoint, segui questi passaggi:
      • Nella scheda Nuovo endpoint, seleziona il progetto in cui vuoi configurare l'endpoint dal menu a discesa Progetto.
      • Seleziona una rete per l'endpoint dal menu a discesa Rete.
      • Se l'API Network Connectivity non è ancora abilitata, fai clic su Abilita.
    4. Per configurare le autorizzazioni per creare automaticamente la policy di connessione al servizio, fai clic su Conferma configurazione di rete.

    Per ulteriori informazioni sulla configurazione di Private Service Connect, consulta Configurare Private Service Connect.

    IP pubblico Aggiunge un indirizzo IP pubblico per l'istanza. Puoi quindi aggiungere reti autorizzate per connetterti all'istanza.

    La tua istanza può avere sia un indirizzo IP pubblico che uno privato.

    Scopri di più sull'utilizzo dell'IP pubblico.

    Reti autorizzate

    Aggiungi il nome della nuova rete e l'indirizzo di rete. Scopri di più.

    Consenti API di dati

    Se selezioni questa casella di controllo, consenti agli utenti autorizzati di chiamare l'API di dati per eseguire istruzioni SQL sull'istanza. Per le istanze che hanno solo un IP privato, ciò consente agli utenti autorizzati di chiamare l'API di dati da internet pubblico.

    Abilita percorso privato

    Selezionando questa casella di controllo, consenti ad altri servizi Google Cloud , come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione privata.

    Abilita il pool di connessioni gestito

    Se selezioni questa casella di controllo, abiliti il pool di connessioni gestito per la tua istanza. Il pool di connessioni gestito consente di scalare i workload ottimizzando l'utilizzo delle risorse e la latenza di connessione istanze Cloud SQL utilizzando il pooling e il multiplexing. Per ulteriori informazioni sul pool di connessioni gestito, consulta Panoramica del pool di connessioni gestito.

    Sicurezza
    Modalità di autorità di certificazione del server

    Scegli il tipo di autorità di certificazione (CA) che firma il certificato del server per questa istanza Cloud SQL. Scopri di più.

    Per impostazione predefinita, quando crei un'istanza nella console Google Cloud , l'istanza utilizza l'autorità di certificazione interna gestita da Google (GOOGLE_MANAGED_INTERNAL_CA), ovvero l'opzione CA per istanza.

    Rotazione automatica del certificato del server

    Se selezioni l'opzione CA (autorità di certificazione) CAS gestita da Google (GOOGLE_MANAGED_CAS_CA) o l'opzione CA (autorità di certificazione) interna CAS gestita dal cliente (CUSTOMER_MANAGED_CAS_CA) come modalità CA server per l'istanza, puoi scegliere se ruotare automaticamente il certificato del server per l'istanza. Per saperne di più sulla rotazione automatica dei certificati server Cloud SQL, consulta Attivare la rotazione automatica dei certificati server.

    Per impostazione predefinita, questa opzione è disabilitata.
    Protezione dei dati
    Livello di backup L'opzione di backup della tua istanza. Puoi scegliere tra backup avanzati e backup standard.
    Backup automatici Il periodo di tempo in cui vuoi che inizino i backup. Scopri di più.
    Scegli dove archiviare i tuoi backupSeleziona Più regioni per la maggior parte dei casi d'uso. Se devi archiviare i backup in una regione specifica, ad esempio se ci sono motivi normativi per farlo, seleziona Regione e scegli la regione dal menu a discesa Località.
    Scegli quanti backup automatici archiviareIl numero di backup automatici che vuoi conservare (da 1 a 365 giorni). Scopri di più.
    Abilita recupero point-in-time Abilita il recupero point-in-time e la registrazione write-ahead. Scopri di più.
    Abilita la protezione da eliminazione Determina se proteggere un'istanza dall'eliminazione accidentale. Scopri di più.
    Abilita i backup conservati dopo l'eliminazione dell'istanza Determina se i backup automatici e on demand vengono conservati dopo l'eliminazione di un'istanza. Scopri di più.
    Scegli il numero di giorni di log da conservare Configura la conservazione del log write-ahead da 1 a 7 giorni. L'impostazione predefinita è 7 giorni. Scopri di più.
    Manutenzione
    Finestra preferita Determina un periodo di un'ora in cui Cloud SQL può eseguire interventi di manutenzione che potrebbero causare interruzioni sulla tua istanza. Se non imposti la finestra temporale, la manutenzione che potrebbe causare interruzioni può essere eseguita in qualsiasi momento. Scopri di più.
    Ordine degli aggiornamenti Il momento che preferisci per gli aggiornamenti delle istanze, rispetto ad altre istanze dello stesso progetto. Scopri di più.
    Flag
    AGGIUNGI SEGNALAZIONE Puoi utilizzare i flag di database per controllare le impostazioni e i parametri della tua istanza. Scopri di più.
    Query Insights
    Abilita Query Insights

    Se selezioni questa casella di controllo, abiliti Query Insights per la tua istanza. Query Insights fornisce informazioni dettagliate sulle query del database, tra cui prestazioni delle query, testo delle query e piani di esecuzione delle query. Dopo aver selezionato Query Insights, puoi attivare funzionalità aggiuntive associate a Query Insights. Per ulteriori informazioni su queste funzionalità e sugli insight sulle query, consulta Utilizzare Query Insights per migliorare le prestazioni delle query.

    Acquisizione delle prestazioni

    Quando selezioni la casella di controllo Attiva approfondimenti sulle query, attivi anche automaticamente l'acquisizione delle prestazioni di MySQL.

    Se non vuoi attivare l'acquisizione delle prestazioni di MySQL, deseleziona la casella di controllo Acquisizione delle prestazioni. Puoi attivare o disattivare l'acquisizione delle prestazioni di MySQL per un'istanza esistente in un secondo momento aggiornando le impostazioni dell'istanza. Per ulteriori informazioni sull'acquisizione delle prestazioni di MySQL, consulta Panoramica dell'acquisizione delle prestazioni di Cloud SQL.

    Etichette
    AGGIUNGI ETICHETTAAggiungi una chiave e un valore per ogni etichetta che aggiungi. Utilizzi le etichette per organizzare le istanze.
  14. Fai clic su Crea istanza.

    Nota: la creazione dell'istanza potrebbe richiedere qualche minuto. Tuttavia, puoi visualizzare le informazioni sull'istanza durante la sua creazione.

gcloud

Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, consulta Installazione di gcloud CLI. Per informazioni su come avviare Cloud Shell, consulta la documentazione di Cloud Shell.

  1. Utilizza il comando gcloud sql instances create per creare l'istanza:
  2. Per le istanze della versione Cloud SQL Enterprise Plus:

        gcloud sql instances create INSTANCE_NAME \
        --region=REGION \
        --tier=TIER \
        --database-version=DATABASE_VERSION \
        --edition=ENTERPRISE_PLUS
        

    Per le istanze Cloud SQL Enterprise:

        gcloud sql instances create INSTANCE_NAME \
        --cpu=NUMBER_CPUS \
        --memory=MEMORY_SIZE \
        --region=REGION
        
    In alternativa, puoi utilizzare il flag --tier se scegli db-f1-micro o db-g1-small come tipo di macchina:
        gcloud sql instances create INSTANCE_NAME \
          --tier=API_TIER_STRING \
          --region=REGION
      

    Esistono limitazioni per i valori di vCPU e dimensioni della memoria:

    • Le vCPU devono essere 1 o un numero pari compreso tra 2 e 96.
    • La memoria deve essere:
      • Da 0,9 a 6,5 GB per vCPU
      • Un multiplo di 256 MB
      • Almeno 3,75 GB (3840 MB)

    Ad esempio, il seguente comando crea un'istanza Cloud SQL Enterprise con due vCPU e 7680 MB di memoria:

      gcloud sql instances create myinstance \
      --database-version=MYSQL_8_0 \
      --cpu=2 \
      --memory=7680MB \
      --region=us-central1
      

    Il comando seguente crea un'istanza Cloud SQL Enterprise Plus con quattro core:

      gcloud sql instances create myinstance \
      --database-version=MYSQL_8_0_31 \
      --tier=db-perf-optimized-N-4 \
      --edition=ENTERPRISE_PLUS \
      --region=us-central1
      

    Il valore predefinito di REGION è us-central1.

    Non includere informazioni sensibili o che consentono l'identificazione personale nel nome dell'istanza, in quanto è visibile esternamente.
    Non è necessario includere l'ID progetto nel nome dell'istanza. Questa operazione viene eseguita automaticamente ove opportuno (ad esempio, nei file di log).

    Se stai creando un'istanza per l'alta affidabilità, puoi specificare sia la zona primaria sia quella secondaria utilizzando i parametri --zone e --secondary-zone. Quando la zona secondaria viene utilizzata durante la creazione o la modifica dell'istanza, si applicano le seguenti condizioni:

    • Le zone devono essere valide.
    • Se viene specificata la zona secondaria, deve essere specificata anche quella principale.
    • Se vengono specificate le zone primaria e secondaria, queste devono essere zone distinte.
    • Se vengono specificate le zone primaria e secondaria, queste devono appartenere alla stessa regione.

    Puoi aggiungere altri parametri per determinare altre impostazioni dell'istanza:

    Impostazione Parametro Note
    Parametri obbligatori
    Versione database --database-version La versione del database, che si basa sulla tua versione di Cloud SQL.
    Regione --region Visualizza i valori validi.
    Imposta criteri relativi alle password
    Abilita la policy delle password --enable-password-policy Attiva la policy per le password quando viene utilizzata. Per impostazione predefinita, i criteri per le password sono disattivati. Se disattivato utilizzando il parametro --clear-password-policy, gli altri parametri delle norme relative alle password vengono reimpostati.
    Lunghezza minima --password-policy-min-length Specifica il numero minimo di caratteri che deve contenere la password.
    Complessità della password --password-policy-complexity Attiva il controllo della complessità della password per assicurarsi che la password contenga un carattere di ciascuno di questi tipi: minuscolo, maiuscolo, numerico e non alfanumerico. Imposta il valore su COMPLEXITY_DEFAULT.
    Limita il riutilizzo della password --password-policy-reuse-interval Specifica il numero di password precedenti che non puoi riutilizzare. Supportato solo su Cloud SQL per MySQL 8.0 e versioni successive.
    Non consentire nome utente --password-policy-disallow-username-substring Impedisce l'utilizzo del nome utente nella password. Utilizza il parametro --no-password-policy-disallow-username-substring per disattivare il controllo.
    Connettività
    Pool di connessioni gestito --enable-connection-pooling Abilita il pool di connessioni gestito nella nuova istanza. Puoi configurare le impostazioni avanzate del pool di connessioni gestito dopo la creazione dell'istanza.

    Nota : questa funzionalità è disponibile solo per le istanze della versione Cloud SQL Enterprise Plus configurate per soddisfare i requisiti del pool di connessioni gestito.

    IP privato

    Accesso privato ai servizi

    --network

    --no-assign-ip (facoltativo)

    --allocated-ip-range-name (facoltativo)

    --enable-google-private-path (facoltativo)



    Private Service Connect

    --no-assign-ip

    --enable-private-service-connect

    --allowed-psc-projects

    --psc-auto-connections

    --enable-psc-auto-connection-policy

    --network: specifica il nome della rete VPC che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete. Disponibile solo per il comando beta (gcloud beta sql instances create).

    --no-assign-ip: L'istanza avrà solo un indirizzo IP privato.

    --allocated-ip-range-name: se specificato, imposta un nome di intervallo per il quale viene allocato un intervallo IP. Ad esempio, google-managed-services-default. Il nome dell'intervallo deve essere conforme a RFC-1035 e contenere da 1 a 63 caratteri. (gcloud alpha sql instances create).

    --enable-google-private-path: se utilizzi questo parametro, consenti ad altri Google Cloud servizi, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione privata.

    Questo parametro è valido solo se:

    • Utilizzi il parametro --no-assign-ip.
    • Utilizza il parametro --network per specificare il nome della rete VPC che vuoi utilizzare per creare una connessione privata.

    Per le istanze Cloud SQL che utilizzano Private Service Connect per le connessioni IP private, utilizza i seguenti flag:

    --enable-private-service-connect: consente connessioni di rete privata all'istanza Cloud SQL utilizzando Private Service Connect. Per ulteriori informazioni, consulta la panoramica di Private Service Connect in Cloud SQL.

    --allowed-psc-projects: un elenco separato da virgole di ID o numeri di progetto consentiti da cui gli endpoint Private Service Connect possono connettersi alle istanze Cloud SQL.

    --psc-auto-connections: se configuri automaticamente gli endpoint per un'istanza Cloud SQL, utilizza il flag per specificare le reti e i progetti consumer per gli endpoint Private Service Connect.

    --enable-psc-auto-connection-policy: se specificato, Google Cloud crea o aggiorna una policy di connessione al servizio nella rete e nel progetto consumer per l'endpoint Private Service Connect.

    Per ulteriori informazioni sulla configurazione di Private Service Connect, consulta Configurare Private Service Connect.

    Accesso all'API di dati --data-api-access Controlla la connettività all'istanza utilizzando l'API di dati. È disattivato per impostazione predefinita. Imposta il valore su ALLOW_DATA_API per consentire agli utenti di utilizzare l'API di dati per connettersi all'istanza. Per le istanze configurate solo con un indirizzo IP privato, gli utenti autorizzati possono chiamare l'API di dati sull'istanza da internet pubblico. Imposta il valore su DISALLOW_DATA_API per impedire l'utilizzo dell'API Data.
    IP pubblico --authorized-networks Per le connessioni con IP pubblico, solo le connessioni provenienti da reti autorizzate possono connettersi all'istanza. Scopri di più.
    Applicazione di SSL

    --ssl-mode

    --require-ssl

    Il parametro ssl-mode applica l'applicazione SSL/TLS per le connessioni. Per saperne di più, consulta Impostazioni per Cloud SQL per MySQL.

    Il parametro require-ssl determina se le connessioni SSL su IP vengono applicate o meno. require-ssl è un parametro precedente. Utilizza invece ssl-mode. Per saperne di più, consulta IpConfiguration.

    Modalità CA server --server-ca-mode

    Il flag --server-ca-mode configura il tipo di autorità di certificazione (CA) del server per un'istanza. Puoi selezionare una delle seguenti opzioni:

    • GOOGLE_MANAGED_INTERNAL_CA: questo è il valore predefinito. Con questa opzione, una CA interna dedicata a ogni istanza Cloud SQL firma il certificato server per quell'istanza.
    • GOOGLE_MANAGED_CAS_CA: con questa opzione, viene utilizzata una gerarchia di CA costituita da una CA radice e da CA server subordinate gestite da Cloud SQL e ospitate su Google Cloud Certificate Authority Service (CA Service). Le CA server subordinate in una regione firmano i certificati server e sono condivise tra le istanze nella regione. Questa opzione è supportata solo su MySQL 8.0.30 e versioni successive.
    • CUSTOMER_MANAGED_CAS_CA: con questa opzione, definisci la gerarchia CA e gestisci la rotazione dei certificati CA. Crea un pool di CA nel servizio CA nella stessa regione dell'istanza. Una delle CA nel pool viene utilizzata per firmare il certificato server. Questa opzione è supportata solo su MySQL 8.0.30 e versioni successive. Per saperne di più, vedi Utilizzare una CA gestita dal cliente.
    Rotazione automatica del certificato del server --server-certificate-rotation-mode

    Il flag --server-certificate-rotation-mode configura il tipo di modalità di rotazione del certificato del server dell'istanza. Puoi selezionare una delle seguenti opzioni:

    • NO_AUTOMATIC_ROTATION: questo è il valore predefinito. Con questa opzione, non verrà eseguita alcuna rotazione automatica del certificato del server. I certificati del server devono essere ruotati manualmente.
    • AUTOMATIC_ROTATION_DURING_MAINTENANCE: Con questa opzione, la rotazione automatica del certificato del server viene abilitata durante la manutenzione pianificata di Cloud SQL o gli aggiornamenti di manutenzione self-service. Richiede che server_ca_mode sia GOOGLE_MANAGED_CAS_CA o CUSTOMER_MANAGED_CAS_CA.
    Architettura di rete --enforce-new-sql-network-architecture Forza l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione. L'utilizzo di questo flag quando crei un'istanza prima che il progetto sia stato completamente aggiornato alla nuova architettura di rete può comportare un consumo eccessivo di indirizzi IP o la mancata creazione di istanze se non sono rimasti indirizzi IP sufficienti nell'intervallo IP allocato. Per saperne di più, consulta Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
    Tipo di macchina e archiviazione
    Tipo di macchina --tier Utilizzato per specificare un'istanza con core condiviso (db-f1-micro o db-g1-small). Per una configurazione personalizzata dell'istanza, utilizza i parametri --cpu o --memory. Consulta Scegliere una serie di macchine per le configurazioni possibili.
    Tipo di archiviazione --storage-type Determina se l'istanza utilizza l'archiviazione SSD o HDD. Scopri di più.
    Capacità dello spazio di archiviazione --storage-size La quantità di spazio di archiviazione di cui è stato eseguito il provisioning per l'istanza, in GB. Scopri di più.
    Aumento automatico dello spazio di archiviazione --storage-auto-increase Determina se Cloud SQL fornisce automaticamente più spazio di archiviazione per l'istanza quando lo spazio libero è in esaurimento. Scopri di più.
    Limite di aumento automatico dello spazio di archiviazione --storage-auto-increase-limit Determina la quantità di spazio di archiviazione che Cloud SQL può aumentare automaticamente. Scopri di più.
    Cache dei dati (facoltativa) --enable-data-cache Attiva o disattiva la cache dei dati per le istanze. Per ulteriori informazioni, vedi cache dei dati.
    Backup automatici e alta affidabilità
    Alta affidabilità --availability-type Per un'istanza a disponibilità elevata, imposta questo valore su REGIONAL. Scopri di più.
    Zona secondaria --secondary-zone Se stai creando un'istanza per l'alta affidabilità, puoi specificare sia la zona primaria sia quella secondaria utilizzando --zone e --secondary-zone parameters. Si applicano le seguenti limitazioni quando la zona secondaria viene utilizzata durante la creazione o la modifica dell'istanza:
    • Le zone devono essere valide.
    • Se viene specificata la zona secondaria, deve essere specificata anche quella principale.
    • Se vengono specificate le zone primaria e secondaria, devono essere zone distinte.

      Se vengono specificate le zone primaria e secondaria, queste devono appartenere alla stessa regione.

    Backup automatici --backup-start-time Il periodo di tempo in cui vuoi che inizino i backup. Scopri di più.
    Impostazioni di conservazione per i backup automatici --retained-backups-count Il numero di backup automatici da conservare. Scopri di più.
    Logging binario --enable-bin-log Il logging binario consente la replica e il recupero point-in-time. Scopri di più.
    Impostazioni di conservazione per il logging binario --retained-transaction-log-days Il numero di giorni in cui conservare i log binari per il recupero point-in-time. Scopri di più.
    Recupero point-in-time --enable-point-in-time-recovery Abilita il recupero point-in-time e la registrazione write-ahead. Scopri di più.
    Aggiungere flag di database
    Flag di database --database-flags Puoi utilizzare i flag di database per controllare le impostazioni e i parametri della tua istanza. Scopri di più sui flag di database. Scopri di più su come formattare questo parametro.
    Pianificazione della manutenzione
    Periodo di manutenzione --maintenance-window-day,
    --maintenance-window-hour
    Determina un periodo di un'ora in cui Cloud SQL può eseguire manutenzione che potrebbe causare interruzioni sulla tua istanza. Se non imposti la finestra temporale, la manutenzione che potrebbe causare interruzioni può essere eseguita in qualsiasi momento. Scopri di più.
    Tempistica per manutenzione --maintenance-release-channel Il momento che preferisci per gli aggiornamenti delle istanze, rispetto ad altre istanze dello stesso progetto. Utilizza preview per gli aggiornamenti precedenti e production per quelli successivi. Scopri di più.
    Upgrade automatico della versione secondaria
    Abilita l'upgrade automatico della versione secondaria --enable-auto-upgrade-minor-version Per le istanze MySQL 8.0 per cui specifichi una versione secondaria 8.0.35 o successive, ad esempio --database-version=MYSQL_8_0_35. Abilita gli upgrade automatici delle versioni secondarie alla versione secondaria predefinita di Cloud SQL per MySQL 8.0 durante ogni aggiornamento di manutenzione pianificata regolare. Se crei l'istanza senza specificare una versione secondaria (--database-version=MYSQL_8_0), gli upgrade automatici delle versioni secondarie sono abilitati per impostazione predefinita per l'istanza.
    Query Insights
    --insights-config-query-insights-enabled Consente a Query Insights di fornire analisi di query e piani di query.
    --insights-config-enhanced-query-insights-enabled Consente di migliorare Query Insights per la versione Cloud SQL Enterprise Plus per fornire un'analisi delle query più dettagliata.
    --performance-capture-config Utilizza questo flag per configurare le impostazioni di acquisizione delle prestazioni di MySQL per la tua istanza MySQL. Quando abiliti Query Insights o Query Insights avanzato, abiliti anche l'acquisizione delle prestazioni di MySQL con le condizioni di attivazione predefinite.

    Puoi configurare o disattivare l'acquisizione delle prestazioni con il flag --performance-capture-config nello stesso comando create o aggiornando l'istanza in un secondo momento. Per saperne di più, consulta Configurare l'acquisizione delle prestazioni di MySQL.
    SAN personalizzato
    Aggiungere un nome alternativo del soggetto (SAN) personalizzato --custom-subject-alternative-names=DNS_NAMES

    Se vuoi utilizzare un nome DNS personalizzato per connetterti a un'istanza Cloud SQL anziché utilizzare un indirizzo IP, configura l'impostazione del nome alternativo del soggetto (SAN) personalizzato durante la creazione dell'istanza. Il nome DNS personalizzato che inserisci nell'impostazione SAN personalizzata viene aggiunto al campo SAN del certificato server dell'istanza. In questo modo puoi utilizzare il nome DNS personalizzato con la convalida del nome host in modo sicuro.

    Prima di poter utilizzare il nome DNS personalizzato nei client e nelle applicazioni, devi configurare il mapping tra il nome DNS e l'indirizzo IP. Questa operazione è nota come risoluzione DNS. Puoi aggiungere un elenco separato da virgole di un massimo di tre nomi DNS personalizzati all'impostazione SAN personalizzata.

  3. Prendi nota dell'indirizzo IP assegnato automaticamente.

    Se non utilizzi il proxy di autenticazione Cloud SQL, utilizzerai questo indirizzo come indirizzo host che le tue applicazioni o i tuoi strumenti utilizzano per connettersi all'istanza.

  4. Imposta la password per l'utente MySQL "root@%":
          gcloud sql users set-password root \
          --host=% \
          --instance INSTANCE_NAME \
          --password PASSWORD
          

Terraform

Per creare un'istanza, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "mysql_pvp_instance_name" {
  name             = "mysql-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "MYSQL_8_0"
  root_password    = "abcABC123!"
  settings {
    tier = "db-f1-micro"
    password_validation_policy {
      min_length                  = 6
      complexity                  = "COMPLEXITY_DEFAULT"
      reuse_interval              = 2
      disallow_username_substring = true
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. 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.

Preparare la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene chiamato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire 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

  1. 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.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!".

  3. 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:

  1. Per disattivare la protezione dall'eliminazione, imposta l'argomento deletion_protection su false nel file di configurazione Terraform.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo questo comando e inserendo yes al prompt:

    terraform destroy

REST v1

Crea l'istanza

Questo esempio crea un'istanza. Sono inclusi anche alcuni parametri facoltativi, come i backup e la registrazione binaria. Per un elenco completo dei parametri per questa chiamata, consulta la pagina Instances:insert. Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per la regione, consulta Impostazioni dell'istanza.

Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID istanza, in quanto è visibile esternamente.
Non è necessario includere l'ID progetto nel nome dell'istanza. Questa operazione viene eseguita automaticamente ove opportuno (ad esempio, nei file di log).

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: l'ID istanza
  • DATABASE_VERSION: la versione del database. Ad esempio: MYSQL_9_7, MYSQL_8_4 o MYSQL_8_0_37. Se non specifichi una versione del database, quella predefinita è MYSQL_8_4.
  • REGION: la regione
  • MACHINE_TYPE: il tipo di macchina
  • EDITION_TYPE: la tua versione di Cloud SQL
  • DATA_CACHE_ENABLED: (facoltativo) impostato su true per attivare la cache dei dati per l'istanza
  • PRIVATE_NETWORK: specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
  • AUTHORIZED_NETWORKS: per le connessioni IP pubbliche, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
  • CA_MODE: specifica una gerarchia di autorità di certificazione per l'istanza, GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Se non specifichi serverCaMode, la configurazione predefinita è GOOGLE_MANAGED_INTERNAL_CA. Questa funzionalità è in anteprima.
  • SERVER_CERTIFICATE_ROTATION_MODE: Per la rotazione automatica del certificato del server per
  • SERVER_CERTIFICATE_ROTATION_MODE: per la rotazione automatica del certificato server per la tua istanza, specifica AUTOMATIC_ROTATION_DURING_MAINTENANCE. Se non specifichi serverCertificateRotationMode, la configurazione predefinita è NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: aggiungi un elenco separato da virgole di massimo tre nomi DNS al certificato server dell'istanza Cloud SQL. Puoi proteggere più nomi DNS con un unico certificato. Questa funzionalità è disponibile in anteprima e solo per le istanze CUSTOMER_MANAGED_CAS_CA.

Per impostare una policy per le password durante la creazione di un'istanza, includi l'oggetto passwordValidationPolicy nella richiesta. Imposta i seguenti parametri, se necessario:

  • enablePasswordPolicy: attiva la policy per le password quando è impostato su true.

    Per rimuovere la policy relativa alle password, puoi utilizzare una richiesta PATCH con null come valore per enablePasswordPolicy. In questo caso, gli altri parametri del criterio della password vengono reimpostati.

  • minLength: specifica il numero minimo di caratteri che la password deve avere.
  • complexity: verifica se la password è una combinazione di caratteri minuscoli, maiuscoli, numerici e non alfanumerici. Il valore predefinito è COMPLEXITY_DEFAULT.
  • reuseInterval: specifica il numero di password precedenti che non puoi riutilizzare.

    Supportato solo su Cloud SQL per MySQL 8.0 e versioni successive.

  • disallowUsernameSubstring: impedisce l'utilizzo del nome utente nella password se impostato su true.

Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato. Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.

Per configurare l'istanza per Query Insights, esegui le sostituzioni appropriate nella sezione insightsConfig:

  • QUERY_INSIGHTS_ENABLED: impostato su true per abilitare Query Insights per l'istanza.
  • RECORD_CLIENT_ADDRESS: impostato su true per archiviare gli indirizzi IP client da cui provengono le query e ti aiuta a raggruppare i dati per eseguire metriche. Le query provengono da più host. L'esame dei grafici per le query provenienti dagli indirizzi IP client può aiutarti a identificare l'origine di un problema.
  • RECORD_APPLICATION_TAGS: impostato su true per archiviare i tag delle applicazioni che ti aiutano a determinare le API e le route modello-visualizzazione-controller (MVC) che effettuano le richieste e raggruppare i dati per generare le metriche corrispondenti. Questa opzione richiede di commentare le query con un insieme specifico di tag. Puoi farlo utilizzando la libreria di strumentazione automatica sqlcommenter open source per la mappatura relazionale degli oggetti (ORM). Queste informazioni aiutano Query Insights a identificare l'origine di un problema e l'MVC da cui proviene. I percorsi delle applicazioni ti aiutano con il monitoraggio delle applicazioni.
  • QUERY_STRING_LENGTH: impostato sul limite di lunghezza della query in byte, Imposta il limite di lunghezza della query predefinito. Le query più lunghe sono più utili per le query analitiche, ma richiedono anche più memoria. La modifica della lunghezza della query richiede il riavvio dell'istanza. Puoi comunque aggiungere tag alle query che superano il limite di lunghezza. Per Cloud SQL Enterprise, puoi specificare un valore in byte compreso tra 256 e 4500. La lunghezza predefinita della query è di 1024 byte. Per la versione Cloud SQL Enterprise Plus, puoi specificare un limite in byte da 1 a 1048576. Il valore predefinito è 1024 byte (1 KB).

  • QUERY_PLANS_PER_MINUTE: impostato sul numero di piani di query da acquisire al minuto. Per impostazione predefinita, vengono acquisiti un massimo di cinque campioni di piano di query eseguiti al minuto su tutti i database dell'istanza. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe incrementare l'overhead delle prestazioni. Per disabilitare il campionamento, imposta questo valore su 0. Per Cloud SQL Enterprise, puoi modificare il valore da 0 a 20. Per la versione Cloud SQL Enterprise Plus, puoi aumentare il massimo fino a 200 per fornire più punti dati.

  • ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: impostato su true per abilitare Query Insights avanzato per l'istanza.

Per il campo performanceCaptureConfig, includi le seguenti impostazioni dei flag. Se non imposti i valori per i flag, l'agente di monitoraggio utilizza i valori predefiniti per le soglie. Per informazioni più dettagliate sui trigger impostati da questi flag, vedi Trigger di acquisizione delle prestazioni.

  • PERFORMANCE_CAPTURE_ENABLED: impostato su false per disattivare l'acquisizione delle prestazioni di MySQL per la tua istanza. Se queryInsightsEnabled è impostato su true, l'acquisizione delle prestazioni viene abilitata automaticamente e applica i valori predefiniti alle condizioni di attivazione basate su soglie.
  • PROBING_INTERVAL_SECONDS: un numero intero compreso tra 30 e 86400. L'intervallo di tempo, in secondi, tra i probe delle metriche. Il valore predefinito è 30.
  • PROBE_THRESHOLD: il numero di volte consecutive in cui una soglia deve essere superata per attivare un'acquisizione del rendimento. L'intervallo valido è compreso tra 1 e 20. Il valore predefinito è 3.
  • RUNNING_THREADS_THRESHOLD: per le istanze principali, il numero minimo di thread attivi considerati al di sopra della soglia. Ad esempio, 10. Deve essere maggiore o uguale a 10. Se non viene impostato, il valore predefinito si basa sulle dimensioni dell'istanza. Il valore predefinito è MIN(600, cpuCount * 20). Il valore predefinito è 600 o il numero di vCPU sull'istanza moltiplicato per 20, a seconda di quale sia inferiore.
  • SECONDS_BEHIND_SOURCE_THRESHOLD: per le repliche di lettura, il ritardo di replica minimo, in secondi, considerato superiore alla soglia. Deve essere maggiore di 1. Il valore predefinito è 900.
  • TRANSACTION_DURATION_THRESHOLD: la durata, in secondi, di una transazione non eseguita prima che venga monitorata e inclusa in un log di acquisizione del rendimento. Ad esempio, 300. Il valore minimo è 60. Il valore predefinito è 3600.
  • SECONDS: la durata, in secondi, delle transazioni a esecuzione prolungata da terminare automaticamente. Questo limite non può essere impostato su un valore inferiore al valore impostato per il parametro transactionDurationThreshold (TRANSACTION_DURATION_THRESHOLD).
  • TRANSACTION_TYPE: determina le categorie di transazioni da terminare. I valori possibili sono:
    • READ_ONLY_TRANSACTIONS: termina solo le query di sola lettura o SELECT. Questo è il valore predefinito se transactionKillType non è specificato.
    • ALL_TRANSACTIONS: termina qualsiasi query in esecuzione che supera la soglia, incluse le query con operazioni di scrittura. Sono inclusi INSERT, UPDATE, DELETE e altre istruzioni DDL.
  • EXCLUSION_LIST: un elenco di stringhe da esentare. Puoi fornire le voci come user@host o come utente autonomo, che per impostazione predefinita è user@%. L'elenco supporta i caratteri jolly % e _ per la corrispondenza nella parte dell'host.
  • CPU_UTILIZATION_THRESHOLD_PERCENT: la percentuale di utilizzo CPU complessiva da superare in modo coerente. Ad esempio, 90. Il valore minimo è 10 e il valore massimo è 99. Il valore predefinito è 0, che è disabilitato.
  • MEMORY_USAGE_THRESHOLD_PERCENT: la percentuale di memoria utilizzata complessiva da superare costantemente. Ad esempio, 90. Il valore minimo è 10 e il valore massimo è 99. Il valore predefinito è 0, che è disabilitato.
  • TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: la soglia per le transazioni che possono trovarsi nello stato LOCK WAIT. Ad esempio: 50. Il valore minimo è 10 e il valore massimo è 10000. Il valore predefinito è 0, che è disabilitato.
  • SEMAPHORE_WAIT_THRESHOLD_COUNT: la soglia per il numero di thread in attesa di semafori InnoDB dal comando SHOW ENGINE INNODB STATUS. Ad esempio: 20. Il valore minimo è 10 e il valore massimo è 10000. Il valore predefinito è 0, che è disabilitato.
  • HISTORY_LIST_LENGTH_THRESHOLD_COUNT: la soglia per il conteggio della lunghezza dell'elenco della cronologia InnoDB (HLL) consentita per il database. Ad esempio, 100000. Il valore minimo è 10000 e il valore massimo è 10000000. Il valore predefinito è 0, che è disabilitato.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "dataCacheConfig": {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING"
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API",
    "insightsConfig" : {
       "queryInsightsEnabled" : QUERY_INSIGHTS_ENABLED,
       "recordClientAddress" : RECORD_CLIENT_ADDRESS,
       "recordApplicationTags" : RECORD_APPLICATION_TAGS,
       "queryStringLength" : QUERY_STRING_LENGTH,
       "queryPlansPerMinute" : QUERY_PLANS_PER_MINUTE,
       "enableEnhancedQueryInsightsEnabled": ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED
    },
    "performanceCaptureConfig": {
       "enabled": PERFORMANCE_CAPTURE_ENABLED,
       "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
       "probeThreshold": PROBE_THRESHOLD,
       "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
       "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
       "cpuUtilizationThresholdPercent": CPU_UTILIZATION_THRESHOLD_PERCENT,
       "memoryUsageThresholdPercent": MEMORY_USAGE_THRESHOLD_PERCENT,
       "transactionLockWaitThresholdCount": TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT,
       "semaphoreWaitThresholdCount": SEMAPHORE_WAIT_THRESHOLD_COUNT,
       "historyListLengthThresholdCount": HISTORY_LIST_LENGTH_THRESHOLD_COUNT,
       "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD,
       "transactionKillThresholdSeconds": SECONDS,
       "transactionKillType": TRANSACTION_TYPE,
       "transactionKillExcludedUserHosts": [ EXCLUSION_LIST
     ]
   },
  }
 "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La risposta è un'operazione a lunga esecuzione, che potrebbe richiedere alcuni minuti.

Aggiornare la password root

Al termine dell'inizializzazione dell'istanza, aggiorna la password root:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: il tuo ID progetto
  • instance-id: l'ID istanza creato nel passaggio precedente
  • root-password: la password root che preferisci

Metodo HTTP e URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=root

Corpo JSON della richiesta:

{
  "name": "root",
  "host": "%",
  "password": "root-password"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2019-09-26T14:32:30.592Z",
  "startTime": "2019-09-26T14:32:30.594Z",
  "endTime": "2019-09-26T14:32:33.518Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Recuperare l'indirizzo IPv4

Recupera l'indirizzo IPv4 assegnato automaticamente alla nuova istanza:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: il tuo ID progetto
  • instance-id: l'ID istanza creato nel passaggio precedente

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cerca il campo ipAddress nella risposta.

REST v1beta4

Crea l'istanza

Questo esempio crea un'istanza. Sono inclusi anche alcuni parametri facoltativi, come i backup e la registrazione binaria. Per un elenco completo dei parametri per questa chiamata, consulta la pagina instances:insert. Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per la regione, consulta Impostazioni dell'istanza.

Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID istanza, in quanto è visibile esternamente.
Non è necessario includere l'ID progetto nel nome dell'istanza. Questa operazione viene eseguita automaticamente ove opportuno (ad esempio, nei file di log).

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: l'ID istanza
  • DATABASE_VERSION: la versione del database. Ad esempio: MYSQL_9_7, MYSQL_8_4 o MYSQL_8_0_37. Se non specifichi una versione del database, la versione predefinita è MYSQL_8_4.
  • REGION: la regione
  • MACHINE_TYPE: il tipo di macchina
  • EDITION_TYPE: la tua versione di Cloud SQL .
  • DATA_CACHE_ENABLED: (facoltativo) impostato su true per attivare la cache dei dati per l'istanza
  • PRIVATE_NETWORK: specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
  • AUTHORIZED_NETWORKS: Per le connessioni IP pubbliche, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
  • CA_MODE: specifica una gerarchia di autorità di certificazione per l'istanza, GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Se non specifichi serverCaMode, la configurazione predefinita è GOOGLE_MANAGED_INTERNAL_CA. Questa funzionalità è in anteprima.
  • SERVER_CERTIFICATE_ROTATION_MODE: per la rotazione automatica del certificato del server per la tua istanza, specifica AUTOMATIC_ROTATION_DURING_MAINTENANCE. Se non specifichi serverCertificateRotationMode, la configurazione predefinita è NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: aggiungi un elenco separato da virgole di massimo tre nomi DNS al certificato server dell'istanza Cloud SQL. Puoi proteggere più nomi DNS con un unico certificato. Questa funzionalità è disponibile in anteprima e solo per le istanze CUSTOMER_MANAGED_CAS_CA.

Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato. Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.

Per impostare una policy per le password durante la creazione di un'istanza, includi l'oggetto passwordValidationPolicy nella richiesta. Imposta i seguenti parametri, se necessario:

  • enablePasswordPolicy: attiva la policy per le password quando è impostato su true.

    Per rimuovere la policy relativa alle password, puoi utilizzare una richiesta PATCH con null come valore per enablePasswordPolicy. In questo caso, gli altri parametri del criterio della password vengono reimpostati.

  • minLength: specifica il numero minimo di caratteri che la password deve avere.
  • complexity: verifica se la password è una combinazione di caratteri minuscoli, maiuscoli, numerici e non alfanumerici. Il valore predefinito è COMPLEXITY_DEFAULT.
  • reuseInterval: specifica il numero di password precedenti che non puoi riutilizzare.

    Supportato solo su Cloud SQL per MySQL 8.0 e versioni successive.

  • disallowUsernameSubstring: impedisce l'utilizzo del nome utente nella password se impostato su true.

Per configurare l'istanza per Query Insights, esegui le sostituzioni appropriate nella sezione insightsConfig:

  • QUERY_INSIGHTS_ENABLED: impostato su true per abilitare Query Insights per l'istanza.
  • RECORD_CLIENT_ADDRESS: impostato su true per archiviare gli indirizzi IP client da cui provengono le query e ti aiuta a raggruppare i dati per eseguire metriche. Le query provengono da più host. L'esame dei grafici per le query provenienti dagli indirizzi IP client può aiutarti a identificare l'origine di un problema.
  • RECORD_APPLICATION_TAGS: impostato su true per archiviare i tag delle applicazioni che ti aiutano a determinare le API e le route modello-visualizzazione-controller (MVC) che effettuano le richieste e raggruppare i dati per generare le metriche corrispondenti. Questa opzione richiede di commentare le query con un insieme specifico di tag. Puoi farlo utilizzando la libreria di strumentazione automatica sqlcommenter open source per la mappatura relazionale degli oggetti (ORM). Queste informazioni aiutano Query Insights a identificare l'origine di un problema e l'MVC da cui proviene. I percorsi delle applicazioni ti aiutano con il monitoraggio delle applicazioni.
  • QUERY_STRING_LENGTH: impostato sul limite di lunghezza della query in byte, Imposta il limite di lunghezza della query predefinito. Le query più lunghe sono più utili per le query analitiche, ma richiedono anche più memoria. La modifica della lunghezza della query richiede il riavvio dell'istanza. Puoi comunque aggiungere tag alle query che superano il limite di lunghezza. Per Cloud SQL Enterprise, puoi specificare un valore in byte compreso tra 256 e 4500. La lunghezza predefinita della query è di 1024 byte. Per la versione Cloud SQL Enterprise Plus, puoi specificare un limite in byte da 1 a 1048576. Il valore predefinito è 1024 byte (1 KB).

  • QUERY_PLANS_PER_MINUTE: impostato sul numero di piani di query da acquisire al minuto. Per impostazione predefinita, vengono acquisiti un massimo di cinque campioni di piano di query eseguiti al minuto su tutti i database dell'istanza. È probabile che l'aumento della frequenza di campionamento fornisca più punti dati, ma potrebbe incrementare l'overhead delle prestazioni. Per disabilitare il campionamento, imposta questo valore su 0. Per Cloud SQL Enterprise, puoi modificare il valore da 0 a 20. Per la versione Cloud SQL Enterprise Plus, puoi aumentare il massimo fino a 200 per fornire più punti dati.

  • ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: impostato su true per abilitare Query Insights avanzato per l'istanza.

Per la sezione performanceCaptureConfig, includi le seguenti impostazioni. Se non imposti i valori per queste impostazioni dell'istanza, l'acquisizione delle prestazioni utilizza i valori predefiniti per le soglie. Per informazioni più dettagliate sulle soglie impostate dai trigger, vedi Trigger di acquisizione delle prestazioni.

  • PERFORMANCE_CAPTURE_ENABLED: impostato su false per disattivare l'acquisizione delle prestazioni di MySQL per la tua istanza. Se queryInsightsEnabled è impostato su true, l'acquisizione delle prestazioni di MySQL viene abilitata automaticamente e applica i valori predefiniti alle condizioni di attivazione basate sulle soglie.
  • PROBING_INTERVAL_SECONDS: un numero intero compreso tra 30 e 86400. L'intervallo di tempo, in secondi, tra i probe delle metriche. Il valore predefinito è 30.
  • PROBE_THRESHOLD: il numero di volte consecutive in cui una soglia deve essere superata per attivare un'acquisizione del rendimento. L'intervallo valido è compreso tra 1 e 20. Il valore predefinito è 3.
  • RUNNING_THREADS_THRESHOLD: per le istanze principali, il numero minimo di thread attivi considerati al di sopra della soglia. Ad esempio, 10. Deve essere maggiore o uguale a 10. Se non viene impostato, il valore predefinito si basa sulle dimensioni dell'istanza. Il valore predefinito è MIN(600, cpuCount * 20). Il valore predefinito è 600 o il numero di vCPU sull'istanza moltiplicato per 20, a seconda di quale sia inferiore.
  • SECONDS_BEHIND_SOURCE_THRESHOLD: per le repliche di lettura, il ritardo di replica minimo, in secondi, considerato superiore alla soglia. Deve essere maggiore di 1. Il valore predefinito è 900.
  • TRANSACTION_DURATION_THRESHOLD: la durata, in secondi, di una transazione non eseguita prima che venga monitorata e inclusa in un log di acquisizione del rendimento. Ad esempio, 300. Il valore minimo è 60. Il valore predefinito è 3600.
  • SECONDS: la durata, in secondi, delle transazioni a esecuzione prolungata da terminare automaticamente. Questo limite non può essere impostato su un valore inferiore al valore impostato per il parametro transactionDurationThreshold (TRANSACTION_DURATION_THRESHOLD).
  • TRANSACTION_TYPE: determina le categorie di transazioni da terminare. I valori possibili sono:
    • READ_ONLY_TRANSACTIONS: termina solo le query di sola lettura o SELECT. Questo è il valore predefinito se transactionKillType non è specificato.
    • ALL_TRANSACTIONS: termina qualsiasi query in esecuzione che supera la soglia, incluse le query con operazioni di scrittura. Sono inclusi INSERT, UPDATE, DELETE e altre istruzioni DDL.
  • EXCLUSION_LIST: un elenco di stringhe da esentare. Puoi fornire le voci come user@host o come utente autonomo, che per impostazione predefinita è user@%. L'elenco supporta i caratteri jolly % e _ per la corrispondenza nella parte dell'host.
  • CPU_UTILIZATION_THRESHOLD_PERCENT: la percentuale di utilizzo CPU complessiva da superare in modo coerente. Ad esempio, 90. Il valore minimo è 10 e il valore massimo è 99. Il valore predefinito è 0, che è disabilitato.
  • MEMORY_USAGE_THRESHOLD_PERCENT: la percentuale di memoria utilizzata complessiva da superare costantemente. Ad esempio, 90. Il valore minimo è 10 e il valore massimo è 99. Il valore predefinito è 0, che è disabilitato.
  • TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: la soglia per le transazioni che possono trovarsi nello stato LOCK WAIT. Ad esempio: 50. Il valore minimo è 10 e il valore massimo è 10000. Il valore predefinito è 0, che è disabilitato.
  • SEMAPHORE_WAIT_THRESHOLD_COUNT: la soglia per il numero di thread in attesa di semafori InnoDB dal comando SHOW ENGINE INNODB STATUS. Ad esempio: 20. Il valore minimo è 10 e il valore massimo è 10000. Il valore predefinito è 0, che è disabilitato.
  • HISTORY_LIST_LENGTH_THRESHOLD_COUNT: la soglia per il conteggio della lunghezza dell'elenco della cronologia InnoDB (HLL) consentita per il database. Ad esempio, 100000. Il valore minimo è 10000 e il valore massimo è 10000000. Il valore predefinito è 0, che è disabilitato.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "dataCacheConfig" {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API",
    "insightsConfig": {
       "queryInsightsEnabled" : QUERY_INSIGHTS_ENABLED,
       "recordClientAddress" : RECORD_CLIENT_ADDRESS,
       "recordApplicationTags" : RECORD_APPLICATION_TAGS,
       "queryStringLength" : QUERY_STRING_LENGTH,
       "queryPlansPerMinute" : QUERY_PLANS_PER_MINUTE,
       "enableEnhancedQueryInsightsEnabled": ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED
    },
    
    "performanceCaptureConfig": {
       "enabled": PERFORMANCE_CAPTURE_ENABLED,
      "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
      "probeThreshold": PROBE_THRESHOLD,
      "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
      "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
      "cpuUtilizationThresholdPercent": CPU_UTILIZATION_THRESHOLD_PERCENT,
      "memoryUsageThresholdPercent": MEMORY_USAGE_THRESHOLD_PERCENT,
      "transactionLockWaitThresholdCount": TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT,
      "semaphoreWaitThresholdCount": SEMAPHORE_WAIT_THRESHOLD_COUNT,
      "historyListLengthThresholdCount": HISTORY_LIST_LENGTH_THRESHOLD_COUNT,
      "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD,
      "transactionKillThresholdSeconds": SECONDS,
      "transactionKillType": TRANSACTION_TYPE,
      "transactionKillExcludedUserHosts": [ EXCLUSION_LIST
     ]
    },
    
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La risposta è un'operazione a lunga esecuzione, che potrebbe richiedere alcuni minuti.

Aggiornare la password root

Al termine dell'inizializzazione dell'istanza, aggiorna la password root:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: il tuo ID progetto
  • instance-id: l'ID istanza creato nel passaggio precedente
  • root-password: la password root che preferisci

Metodo HTTP e URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root

Corpo JSON della richiesta:

{
  "name": "root",
  "host": "%",
  "password": "root-password"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2019-09-26T14:32:30.592Z",
  "startTime": "2019-09-26T14:32:30.594Z",
  "endTime": "2019-09-26T14:32:33.518Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

La risposta è un'operazione a lunga esecuzione, che potrebbe richiedere alcuni minuti.

Recuperare l'indirizzo IPv4

Recupera l'indirizzo IPv4 assegnato automaticamente alla nuova istanza:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: il tuo ID progetto
  • instance-id: l'ID istanza creato nel passaggio precedente

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cerca il campo ipAddress nella risposta.

Per vedere come viene creata la richiesta API REST sottostante per questa attività, consulta Explorer API nella pagina instances:insert.

Genera l'endpoint di scrittura

Un endpoint di scrittura è un nome DNS (Domain Name Service) globale che si risolve automaticamente nell'indirizzo IP dell'istanza principale attuale. Questo endpoint reindirizza automaticamente le connessioni in entrata alla nuova istanza principale in caso di operazione di failover o switchover della replica. Puoi utilizzare l'endpoint di scrittura in una stringa di connessione SQL anziché un indirizzo IP. Utilizzando un endpoint di scrittura, puoi evitare di dover apportare modifiche alla connessione dell'applicazione quando si verifica un'interruzione della regione.

Per saperne di più sull'utilizzo di un endpoint di scrittura per connettersi a un'istanza, vedi Connettersi a un'istanza utilizzando un endpoint di scrittura.

Specifica la versione secondaria del database per MySQL 8.0

Puoi specificare la versione secondaria di un'istanza MySQL 8.0 esistente utilizzando gcloud o l'API REST.

gcloud

Utilizza il comando gcloud sql instances create con il flag --database-version.

Sostituisci le seguenti variabili prima di eseguire il comando:

  • INSTANCE_NAME: il nome dell'istanza.
  • DATABASE_VERSION: la versione secondaria del database dell'istanza: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_30, MYSQL_8_0_31, MYSQL_8_0_32, MYSQL_8_0_33, MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39, MYSQL_8_0_40, MYSQL_8_0_41, MYSQL_8_0_42, MYSQL_8_0_43, MYSQL_8_0_44, MYSQL_8_0_45 (versione secondaria predefinita per MySQL 8.0) o MYSQL_8_0_46. Se specifichi MYSQL_8_0, viene utilizzata la versione secondaria predefinita.

    Se non specifichi questo flag, viene utilizzata la versione principale predefinita, MYSQL_8_0.

gcloud sql instances create INSTANCE_NAME \
--database-version=DATABASE_VERSION

Se stai creando un'istanza MySQL 8.0.35 o versioni successive, puoi abilitare gli upgrade automatici delle versioni secondarie specificando il flag --enable-auto-upgrade-minor-version. Quando abiliti gli upgrade automatici delle versioni secondarie, l'istanza viene aggiornata alla versione secondaria predefinita di Cloud SQL per MySQL 8.0 durante l'aggiornamento di manutenzione pianificata regolare. Questo flag non è disponibile per MySQL 8.0.34 e versioni precedenti.

gcloud sql instances create INSTANCE_NAME \
--database-version=DATABASE_VERSION \
--enable-auto-upgrade-minor-version

Per informazioni dettagliate, consulta la documentazione sulla creazione di un'istanza utilizzando gcloud.

REST v1

Utilizza una richiesta POST con il metodo instances:insert e il flag databaseVersion.

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Prima di utilizzare i dati della richiesta, sostituisci queste variabili:
  • project_id: l'ID del progetto.
  • instance_id: il nome dell'istanza.
  • databaseVersion: la versione del database dell'istanza: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_30, MYSQL_8_0_31, MYSQL_8_0_32, MYSQL_8_0_33, MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39, MYSQL_8_0_40, MYSQL_8_0_41, MYSQL_8_0_42, MYSQL_8_0_43, MYSQL_8_0_44, MYSQL_8_0_45 (versione secondaria predefinita per MySQL 8.0) o MYSQL_8_0_46. Se specifichi MYSQL_8_0 come versione, viene utilizzata la versione secondaria predefinita. Se non specifichi il flag databaseVersion, viene utilizzata la versione principale predefinita, MYSQL_8_0.

Per informazioni dettagliate, consulta la documentazione sulla creazione di un'istanza utilizzando l'API REST v1.

REST v1beta4

Utilizza una richiesta POST con il metodo instances:insert e il flag databaseVersion.

  POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances

Prima di utilizzare i dati della richiesta, sostituisci queste variabili:

  • project_id: l'ID del progetto.
  • instance_id: il nome dell'istanza.
  • databaseVersion: La versione del database dell'istanza: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_30, MYSQL_8_0_31, MYSQL_8_0_32, MYSQL_8_0_33. MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39, MYSQL_8_0_40, MYSQL_8_0_41, MYSQL_8_0_42, MYSQL_8_0_43, MYSQL_8_0_44, MYSQL_8_0_45 (versione secondaria predefinita per MySQL 8.0) o MYSQL_8_0_46. Se specifichi MYSQL_8_0, viene utilizzata la versione secondaria predefinita. Se non specifichi il flag databaseVersion, viene utilizzata la versione principale predefinita, MYSQL_8_0.

Per informazioni dettagliate, consulta la documentazione sulla creazione di un'istanza utilizzando l'API REST v1beta4.

Versione secondaria del database per repliche di lettura, cloni e PITR

Quando crei una replica di lettura, puoi specificare la versione secondaria del database della replica di lettura. Per impostazione predefinita, le nuove repliche di lettura vengono create nella versione secondaria predefinita.

Quando cloni un'istanza, l'istanza appena creata ha la stessa versione secondaria dell'origine.

Quando esegui un recupero point-in-time, l'istanza appena creata ha la stessa versione secondaria del database dell'istanza di origine.

Tipi di macchina

Determina la memoria e i core virtuali disponibili per l'istanza Cloud SQL. Puoi configurare i tipi di macchina di serie diverse. La disponibilità delle diverse serie di macchine è determinata dalla versione e dalla regione di Cloud SQL.

Se hai bisogno di un'elaborazione in tempo reale, ad esempio l'elaborazione delle transazioni online (OLTP), assicurati che l'istanza disponga di memoria sufficiente per contenere l'intero set di lavoro. Tuttavia, esistono altri fattori che possono influire sui requisiti di memoria, come il numero di connessioni attive e i processi di overhead interni. Esegui test di carico per evitare problemi di prestazioni nell'ambiente di produzione.

Quando configuri l'istanza, seleziona memoria e vCPU sufficienti per soddisfare le tue esigenze e fai lo scale up dell'istanza man mano che i requisiti aumentano. Una configurazione della macchina con vCPU insufficienti potrebbe perdere la copertura dello SLA. Per saperne di più, consulta le linee guida operative.

Per saperne di più, vedi Scegliere una serie di macchine.

Risoluzione dei problemi

Problema Risoluzione dei problemi
Messaggio di errore: The zone or region does not have sufficient resources to handle the request at the moment.

La zona selezionata non dispone della capacità per le risorse richieste o il tipo di VM al momento della richiesta di creazione dell'istanza. Al momento della richiesta, potrebbe esserci un'elevata domanda operativa simultanea in quella specifica posizione regionale.

Per risolvere il problema, riprova a creare l'istanza in un'altra zona o riprova a creare l'istanza nella stessa zona che ha ricevuto l'errore in un altro momento della giornata.

Messaggio di errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Non sono disponibili altri indirizzi nell'intervallo IP allocato. Possono verificarsi diversi scenari possibili:
  • La dimensione dell'intervallo IP allocato per la connessione di servizio privato è inferiore a /24.
  • La dimensione dell'intervallo IP allocato per la connessione di servizio privato è troppo piccola per il numero di istanze Cloud SQL.
  • Il requisito relativo alle dimensioni dell'intervallo IP allocato sarà maggiore se le istanze vengono create in più regioni. Vedi dimensioni dell'intervallo allocato

Per risolvere il problema, puoi espandere l'intervallo IP allocato esistente o allocare un intervallo IP aggiuntivo alla connessione di servizio privato. Per saperne di più, consulta Allocare un intervallo di indirizzi IP.

Se hai utilizzato il flag --allocated-ip-range-name durante la creazione dell'istanza Cloud SQL, puoi espandere solo l'intervallo IP specificato.

Se stai allocando un nuovo intervallo, assicurati che l'allocazione non si sovrapponga a quelle esistenti.

Dopo aver creato un nuovo intervallo IP, aggiorna il peering VPC con il seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Se stai espandendo un'allocazione esistente, fai attenzione ad aumentare solo l'intervallo di allocazione e non a diminuirlo. Ad esempio, se l'allocazione originale era 10.0.10.0/24, la nuova allocazione deve essere almeno 10.0.10.0/23.

In generale, se si parte da un'allocazione /24, ridurre la maschera di 1 per ogni condizione (gruppo di tipi di istanza aggiuntivo, regione aggiuntiva) è una buona regola pratica. Ad esempio, se provi a creare entrambi i gruppi di tipi di istanza nella stessa allocazione, è sufficiente passare da /24 a /23.

Dopo aver espanso un intervallo IP esistente, aggiorna il peering VPC con il seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Messaggio di errore: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Prova a creare di nuovo l'istanza Cloud SQL.
Messaggio di errore: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

Abilita l'API Service Networking utilizzando il seguente comando e prova a creare di nuovo l'istanza Cloud SQL.

gcloud services enable servicenetworking.googleapis.com \
--project=PROJECT_ID
    
Messaggio di errore: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Quando crei un'istanza utilizzando un indirizzo IP privato, viene creato un service account just-in-time utilizzando l'API Service Networking. Se hai abilitato di recente l'API Service Networking, ilaccount di serviziot potrebbe non essere creato e la creazione dell'istanza non va a buon fine. In questo caso, devi attendere che il account di servizio si propaghi in tutto il sistema o aggiungerlo manualmente con le autorizzazioni richieste.
Messaggio di errore: More than 3 subject alternative names are not allowed. Stai tentando di utilizzare un SAN personalizzato per aggiungere più di tre nomi DNS al certificato del server di un'istanza Cloud SQL. Non puoi aggiungere più di tre nomi DNS all'istanza.
Messaggio di errore: Subject alternative names %s is too long. The maximum length is 253 characters. Assicurati che i nomi DNS che vuoi aggiungere al certificato del server di un'istanza Cloud SQL non superino i 253 caratteri.
Messaggio di errore: Subject alternative name %s is invalid.

Verifica che i nomi DNS che vuoi aggiungere al certificato del server di un'istanza Cloud SQL soddisfino i seguenti criteri:

  • Non contengono caratteri jolly.
  • Non hanno punti finali.
  • Soddisfano le specifiche RFC 1034.

Passaggi successivi

  1. Crea un database MySQL sull'istanza.
  2. Crea utenti MySQL sull'istanza.
  3. Proteggi e controlla l'accesso all'istanza.
  4. Connettiti all'istanza con un client MySQL.
  5. Importa i dati nel database.
  6. Scopri di più sulle impostazioni dell'istanza.