Crie instâncias

Esta página descreve como criar uma instância do Cloud SQL para MySQL.

Para obter informações detalhadas sobre todas as definições de instâncias, consulte o artigo Definições de instâncias.

Uma instância criada recentemente tem quatro bases de dados do sistema:

  • information_schema: fornece acesso aos metadados da base de dados, informações sobre o servidor MySQL.
  • mysql: o esquema do sistema. Contém tabelas que armazenam informações necessárias para o servidor MySQL durante a execução.
  • performance_schema: uma funcionalidade para monitorizar a execução do servidor MySQL a um nível baixo.
  • sys: contém um conjunto de objetos que ajuda os DBAs e os programadores a interpretar os dados recolhidos pelo esquema de desempenho.

O número máximo de instâncias que pode ter num único projeto depende da arquitetura de rede dessas instâncias:

  • Nova arquitetura de rede SQL: pode ter até 1000 instâncias por projeto.
  • Arquitetura de rede SQL antiga: pode ter até 100 instâncias por projeto.
  • Usar ambas as arquiteturas: o seu limite vai estar entre 100 e 1000, consoante a distribuição das suas instâncias pelas duas arquiteturas.

Apresente um registo de apoio ao cliente para pedir um aumento. As réplicas de leitura são contabilizadas como instâncias.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Install the gcloud CLI.

  5. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  9. Install the gcloud CLI.

  10. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Certifique-se de que tem as funções de administrador do Cloud SQL e leitor do Compute na sua conta de utilizador.

    Aceda à página IAM

    Saiba mais acerca das funções e autorizações.

  13. Crie uma instância do MySQL

    Consola

    1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

      Aceda a Instâncias do Cloud SQL

    2. Clique em Criar instância.
    3. No painel Escolha o motor da base de dados da página Criar uma instância, clique em Escolher MySQL.
    4. Na secção Escolha uma edição do Cloud SQL da página Crie uma instância do SQL Server, selecione a edição do Cloud SQL para a sua instância: Enterprise ou Enterprise Plus.

      Para mais informações sobre as edições do Cloud SQL, consulte o artigo Introdução às edições do Cloud SQL.

    5. Selecione a predefinição da edição para a sua instância. Para ver as predefinições disponíveis, clique no menu Predefinição de edição.
    6. Na secção Informações da instância, selecione a versão da base de dados da sua instância. Para ver as versões disponíveis, clique no menu Versão da base de dados.

      Opcional: selecione Mostrar versões secundárias. Em seguida, escolha uma versão secundária diferente da versão secundária predefinida.

      Não é possível editar a versão da base de dados depois de a instância ter sido criada.

    7. No campo ID da instância do painel Informações da instância, introduza um ID para a sua instância.

      Não tem de incluir o ID do projeto no nome da instância. Isto é feito automaticamente sempre que apropriado (por exemplo, nos ficheiros de registo).

    8. Defina uma palavra-passe para o utilizador root.

      Embora exista uma opção para definir Sem palavra-passe, esta não é recomendada por motivos de segurança.

    9. Para ver a palavra-passe em texto não cifrado, clique no ícone Mostrar palavra-passe.

      Pode introduzir a palavra-passe manualmente ou clicar em Gerar para que o Cloud SQL crie uma palavra-passe automaticamente.

    10. Opcional: configure uma política de palavra-passe para a instância da seguinte forma:
      1. Selecione a caixa de verificação Ativar políticas de palavras-passe.
      2. Clique no botão Definir política de palavras-passe, defina uma ou mais das seguintes opções e clique em Guardar.
        • Comprimento mínimo: especifica o número mínimo de carateres que a palavra-passe deve ter.
        • Complexidade da palavra-passe: verifica se a palavra-passe é uma combinação de carateres minúsculos, maiúsculos, numéricos e não alfanuméricos.
        • Restringir reutilização de palavras-passe: especifica o número de palavras-passe anteriores que não pode reutilizar.

          Suportado apenas no Cloud SQL para MySQL 8.0 e versões posteriores.

        • Não permitir nome de utilizador: impede a utilização do nome de utilizador na palavra-passe.
    11. Na secção Escolha a região e a disponibilidade por zona, selecione a região e a zona para a sua instância. A disponibilidade de regiões pode ser diferente com base na sua edição do Cloud SQL para MySQL. Para mais informações, consulte o artigo Acerca das definições de instâncias.

      Coloque a instância na mesma região que os recursos que acedem à mesma. Não é possível modificar a região selecionada no futuro. Na maioria dos casos, não tem de especificar uma zona.

      Se estiver a configurar a sua instância para alta disponibilidade, pode selecionar uma zona principal e uma secundária.

      Aplicam-se as seguintes condições quando a zona secundária é usada durante a criação de instâncias:

      • As zonas são predefinidas como Any para a zona principal e Any (different from primary) para a zona secundária.
      • Se forem especificadas as zonas principal e secundária, têm de ser zonas distintas.
    12. Na secção Personalize a sua instância, atualize as definições da sua instância. Comece por clicar em MOSTRAR OPÇÕES DE CONFIGURAÇÃO para apresentar os grupos de definições. Em seguida, expanda os grupos que quer rever e personalizar as definições. É apresentado um Resumo de todas as opções que selecionar à direita. A personalização destas definições de instância é opcional. As predefinições são atribuídas em todos os casos em que não são feitas personalizações.

      A tabela seguinte é uma referência rápida às definições de instância. Para mais detalhes sobre cada definição, consulte a página Definições da instância.

      Definição Notas
      Tipo de máquina
      Tipo de máquina Selecione a partir de Núcleo partilhado ou Núcleo dedicado. Para o núcleo partilhado, cada tipo de máquina é classificado pelo número de CPUs (núcleos) e pela quantidade de memória da sua instância.
      Núcleos O número de vCPUs para a sua instância. Saiba mais.
      Memória A quantidade de memória para a sua instância, em GB. Saiba mais.
      Personalizado Para o tipo de máquina de núcleo dedicado, em vez de selecionar uma configuração predefinida, selecione o botão Personalizado para criar uma instância com uma configuração personalizada. Quando seleciona esta opção, tem de selecionar o número de núcleos e a quantidade de memória para a sua instância. Saiba mais.
      Cache de dados
      Ative a cache de dados Por predefinição, a opção para ativar a cache de dados é selecionada automaticamente para instâncias da edição Enterprise Plus do Cloud SQL para MySQL. Se não quiser ativar a cache de dados, desmarque a caixa de verificação Ativar cache de dados. Para mais informações sobre a cache de dados, consulte cache de dados.
      Armazenamento
      Tipo de armazenamento Determina se a sua instância usa armazenamento SSD ou HDD. Saiba mais.
      Capacidade de armazenamento A quantidade de armazenamento aprovisionada para a instância. Saiba mais.
      Ative os aumentos automáticos de armazenamento Determina se o Cloud SQL fornece automaticamente mais armazenamento para a sua instância quando o espaço livre é reduzido. Saiba mais.
      Encriptação
      Encriptação gerida pela GoogleA opção predefinida.
      Chave de encriptação gerida pelo cliente (CMEK)Selecione para usar a sua chave com o Google Cloud Key Management Service. Saiba mais.
      Ligações
      IP privado Adiciona um endereço IP privado para a sua instância. Para ativar a ligação à instância, é necessária uma configuração adicional.
      Opcionalmente, pode especificar um intervalo de IPs atribuído para as suas instâncias usarem para ligações.
      1. Expanda a opção Mostrar intervalo de IPs atribuídos.
      2. Selecione um intervalo de IPs no menu pendente.

      A sua instância pode ter um endereço IP público e privado.

      IP público Adiciona um endereço IP público para a sua instância. Em seguida, pode adicionar redes autorizadas para estabelecer ligação à instância.

      A sua instância pode ter um endereço IP público e privado.

      Saiba mais sobre a utilização do IP público.

      Redes autorizadas

      Adicione o nome da nova rede e o endereço de rede. Saiba mais.

      Caminho privado para serviços Google Cloud

      Se selecionar esta caixa de verificação, permite que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação privada.

      Ative a partilha de ligações gerida

      Se selecionar esta caixa de verificação, ativa a funcionalidade Managed Connection Pooling para a sua instância. A pool de ligações gerida permite-lhe dimensionar as suas cargas de trabalho otimizando a utilização de recursos e a latência de ligação das instâncias do Cloud SQL através da pool e da multiplexagem. Para mais informações sobre a funcionalidade de agrupamento de ligações geridas, consulte a vista geral do agrupamento de ligações geridas.

      Segurança
      Modo de autoridade de certificação do servidor

      Escolha o tipo de autoridade de certificação (AC) que assina o certificado do servidor para esta instância do Cloud SQL. Saiba mais.

      Por predefinição, quando cria uma instância na Google Cloud consola, a instância usa a autoridade de certificação interna gerida pela Google (GOOGLE_MANAGED_INTERNAL_CA), que é a opção de CA por instância.

      Proteção de dados
      Automatize as cópias de segurança O período durante o qual quer que os backups sejam iniciados. Saiba mais.
      Escolha onde armazenar as suas cópias de segurançaSelecione Multirregional para a maioria dos exemplos de utilização. Se precisar de armazenar cópias de segurança numa região específica, por exemplo, se existirem motivos regulamentares para o fazer, selecione Região e selecione a sua região no menu pendente Localização.
      Escolha quantas cópias de segurança automáticas quer armazenarO número de cópias de segurança automáticas que quer reter (de 1 a 365 dias). Saiba mais.
      Ative a recuperação pontual Ativa a recuperação pontual e o registo de gravação antecipada. Saiba mais.
      Ative a proteção contra eliminação Determina se uma instância deve ser protegida contra eliminação acidental. Saiba mais.
      Ative as cópias de segurança retidas após a eliminação da instância Determina se as cópias de segurança automáticas e a pedido são mantidas após a eliminação de uma instância. Saiba mais.
      Escolha o número de dias de registos a reter Configure a retenção do registo de gravação antecipada de 1 a 7 dias. A predefinição é de 7 dias. Saiba mais.
      Manutenção
      Janela preferida Determina um período de uma hora durante o qual o Cloud SQL pode realizar manutenção destrutiva na sua instância. Se não definir o período, a manutenção disruptiva pode ser feita em qualquer altura. Saiba mais.
      Ordem das atualizações O seu momento preferido para atualizações de instâncias, relativamente a outras instâncias no mesmo projeto. Saiba mais.
      Flags
      ADICIONAR FLAG Pode usar flags da base de dados para controlar as definições e os parâmetros da sua instância. Saiba mais.
      Marcadores
      ADICIONAR ETIQUETAAdicione uma chave e um valor para cada etiqueta que adicionar. Usa etiquetas para ajudar a organizar as suas instâncias.
    13. Clique em Criar instância.

      Nota: a criação da instância pode demorar alguns minutos. No entanto, pode ver informações sobre a instância enquanto está a ser criada.

    gcloud

    Para obter informações sobre a instalação e o início da CLI gcloud, consulte o artigo Instalar a CLI gcloud. Para obter informações sobre como iniciar o Cloud Shell, consulte a documentação do Cloud Shell.

    1. Use o comando gcloud sql instances create para criar a instância:
    2. Para instâncias da edição Cloud SQL Enterprise Plus:

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

      Para instâncias da edição Enterprise do Cloud SQL:

          gcloud sql instances create INSTANCE_NAME \
          --cpu=NUMBER_CPUS \
          --memory=MEMORY_SIZE \
          --region=REGION
          
      Em alternativa, pode usar a flag --tier se escolher db-f1-micro ou db-g1-small como o tipo de máquina:
          gcloud sql instances create INSTANCE_NAME \
            --tier=API_TIER_STRING \
            --region=REGION
        

      Existem restrições nos valores para vCPUs e tamanho da memória:

      • As vCPUs têm de ser 1 ou um número par entre 2 e 96.
      • A memória tem de:
        • 0,9 a 6,5 GB por vCPU
        • Um múltiplo de 256 MB
        • Pelo menos 3,75 GB (3840 MB)

      Por exemplo, o comando seguinte cria uma instância da edição Enterprise do Cloud SQL com dois vCPUs e 7680 MB de memória:

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

      O seguinte comando cria uma instância da edição Cloud SQL Enterprise Plus com quatro núcleos:

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

      O valor predefinido de REGION é us-central1.

      Não inclua informações confidenciais nem de identificação pessoal no nome da instância, uma vez que é visível externamente.
      Não tem de incluir o ID do projeto no nome da instância. Isto é feito automaticamente sempre que apropriado (por exemplo, nos ficheiros de registo).

      Se estiver a criar uma instância para alta disponibilidade, pode especificar as zonas principal e secundária através dos parâmetros --zone e --secondary-zone. Aplicam-se as seguintes condições quando a zona secundária é usada durante a criação ou a edição da instância:

      • As zonas têm de ser zonas válidas.
      • Se a zona secundária for especificada, a principal também tem de ser especificada.
      • Se as zonas principal e secundária forem especificadas, têm de ser zonas distintas.
      • Se as zonas principal e secundária forem especificadas, têm de pertencer à mesma região.

      Pode adicionar mais parâmetros para determinar outras definições da instância:

      Definição Parâmetro Notas
      Parâmetros obrigatórios
      Versão da base de dados --database-version A versão da base de dados, que se baseia na sua edição do Cloud SQL.
      Região --region Veja os valores válidos.
      Defina a política de palavras-passe
      Ative a política de palavras-passe --enable-password-policy Ativa a política de palavras-passe quando é usada. Por predefinição, a política de palavras-passe está desativada. Quando desativados através do parâmetro --clear-password-policy, os outros parâmetros da política de palavras-passe são repostos.
      Comprimento mínimo --password-policy-min-length Especifica o número mínimo de carateres que a palavra-passe tem de ter.
      Complexidade da palavra-passe --password-policy-complexity Ativa a verificação da complexidade da palavra-passe para garantir que a palavra-passe contém um de cada um destes tipos de carateres: minúsculas, maiúsculas, numéricos e não alfanuméricos. Defina o valor como COMPLEXITY_DEFAULT.
      Restrinja a reutilização de palavras-passe --password-policy-reuse-interval Especifica o número de palavras-passe anteriores que não pode reutilizar. Suportado apenas no Cloud SQL para MySQL 8.0 e posterior.
      Não permitir nome de utilizador --password-policy-disallow-username-substring Impede a utilização do nome de utilizador na palavra-passe. Use o parâmetro --no-password-policy-disallow-username-substring para desativar a verificação.
      Conetividade
      IP privado --network

      --no-assign-ip (opcional)

      --allocated-ip-range-name (opcional)

      --enable-google-private-path (opcional)

      --network: especifica o nome da rede VPC que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede. Disponível apenas para o comando beta (gcloud beta sql instances create).

      --no-assign-ip: a instância só tem um endereço IP privado.

      --allocated-ip-range-name: se especificado, define um nome de intervalo para o qual é alocado um intervalo de IPs. Por exemplo, google-managed-services-default. O nome do intervalo deve estar em conformidade com RFC-1035 e ter entre 1 e 63 carateres. (gcloud alpha sql instances create).

      --enable-google-private-path: Se usar este parâmetro, permite que outros serviços Google Cloud , como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação privada.

      Este parâmetro só é válido se:

      • Usar o parâmetro --no-assign-ip.
      • Use o parâmetro --network para especificar o nome da rede VPC que quer usar para criar uma ligação privada.

      IP público --authorized-networks Para ligações de IP público, apenas as ligações de redes autorizadas podem estabelecer ligação à sua instância. Saiba mais.
      Aplicação de SSL

      --ssl-mode

      --require-ssl

      O parâmetro ssl-mode aplica a aplicação de SSL/TLS às ligações. Para mais informações, consulte as Definições do Cloud SQL para MySQL.

      O parâmetro require-ssl determina se as ligações SSL através de IP são aplicadas ou não. require-ssl é um parâmetro antigo. Em alternativa, use ssl-mode. Para mais informações, consulte o artigo IpConfiguration.

      Modo de AC do servidor --server-ca-mode

      A flag --server-ca-mode configura o tipo de autoridade de certificação (CA) do certificado do servidor para uma instância. Pode selecionar uma das seguintes opções:

      • GOOGLE_MANAGED_INTERNAL_CA: este é o valor predefinido. Com esta opção, uma AC interna dedicada a cada instância do Cloud SQL assina o certificado do servidor dessa instância.
      • GOOGLE_MANAGED_CAS_CA: com esta opção, é usada uma hierarquia de ACs que consiste numa AC de raiz e em ACs de servidor subordinadas geridas pelo Cloud SQL e alojadas no Google Cloud Certificate Authority Service (CA Service). As ACs (autoridades de certificação) do servidor subordinadas numa região assinam os certificados do servidor e são partilhadas entre instâncias na região. Esta opção só é suportada no MySQL 8.0.30 e posteriores.
      • CUSTOMER_MANAGED_CAS_CA: com esta opção, define a hierarquia da AC e gere a rotação dos certificados da AC. Cria um conjunto de ACs no serviço de ACs na mesma região da sua instância. Uma das ACs no conjunto é usada para assinar o certificado do servidor. Esta opção só é suportada no MySQL 8.0.30 e posteriores. Para mais informações, consulte o artigo Use uma AC gerida pelo cliente.
      Arquitetura de rede --enforce-new-network-architecture Aplique a utilização da nova arquitetura de rede para a instância no momento da criação. A utilização desta flag quando cria uma instância antes de esse projeto ter sido totalmente atualizado para a nova arquitetura de rede pode levar ao consumo excessivo de endereços IP ou à falha na criação de instâncias se não existirem endereços IP suficientes no intervalo de IP alocado. Para mais informações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.
      Tipo de máquina e armazenamento
      Tipo de máquina --tier Usado para especificar uma instância de núcleo partilhado (db-f1-micro ou db-g1-small). Para uma configuração de instância personalizada, use os parâmetros --cpu ou --memory. Consulte a secção Configuração personalizada da instância.
      Tipo de armazenamento --storage-type Determina se a sua instância usa armazenamento SSD ou HDD. Saiba mais.
      Capacidade de armazenamento --storage-size A quantidade de armazenamento aprovisionado para a instância, em GB. Saiba mais.
      Aumento automático do armazenamento --storage-auto-increase Determina se o Cloud SQL fornece automaticamente mais armazenamento para a sua instância quando o espaço livre é reduzido. Saiba mais.
      Limite de aumento automático do armazenamento --storage-auto-increase-limit Determina o tamanho que o Cloud SQL pode aumentar automaticamente o armazenamento. Disponível apenas para o comando beta (gcloud beta sql instances create). Saiba mais.
      Cache de dados (opcional) --enable-data-cache Ativa ou desativa a cache de dados para instâncias. Para mais informações, consulte cache de dados.
      Cópias de segurança automáticas e alta disponibilidade
      Alta disponibilidade --availability-type Para uma instância de alta disponibilidade, defina como REGIONAL. Saiba mais.
      Zona secundária --secondary-zone Se estiver a criar uma instância para alta disponibilidade, pode especificar as zonas principal e secundária através dos parâmetros --zone e --secondary-zone parameters. Aplicam-se as seguintes restrições quando a zona secundária é usada durante a criação ou a edição da instância:
      • As zonas têm de ser zonas válidas.
      • Se a zona secundária for especificada, a principal também tem de ser especificada.
      • Se as zonas principal e secundária forem especificadas, têm de ser zonas distintas.

        Se as zonas principal e secundária forem especificadas, têm de pertencer à mesma região.

      Cópias de segurança automáticas --backup-start-time O período durante o qual quer que os backups sejam iniciados. Saiba mais.
      Definições de retenção para cópias de segurança automáticas --retained-backups-count O número de cópias de segurança automáticas a reter. Saiba mais.
      Registo binário --enable-bin-log O registo binário permite a replicação e a recuperação pontual. Saiba mais.
      Definições de retenção para o registo binário --retained-transaction-log-days O número de dias para reter registos binários para a recuperação num determinado momento. Saiba mais.
      Recuperação pontual --enable-point-in-time-recovery Ativa a recuperação pontual e o registo de gravação antecipada. Saiba mais.
      Adicione flags de base de dados
      Sinalizações de bases de dados --database-flags Pode usar flags da base de dados para controlar as definições e os parâmetros da sua instância. Saiba mais acerca das sinalizações da base de dados. Saiba mais sobre como formatar este parâmetro.
      Agendamento da manutenção
      Período de manutenção --maintenance-window-day,
      --maintenance-window-hour
      Determina um período de uma hora em que o Cloud SQL pode realizar manutenção disruptiva na sua instância. Se não definir o período, a manutenção disruptiva pode ser feita em qualquer altura. Saiba mais.
      Tempo de manutenção --maintenance-release-channel O seu momento preferido para atualizações de instâncias, relativamente a outras instâncias no mesmo projeto. Use preview para atualizações anteriores e production para atualizações posteriores. Saiba mais.
      SAN personalizado
      Adicione um nome alternativo personalizado de requerente (SAN) --custom-subject-alternative-names=DNS_NAMES

      Se quiser usar um nome DNS personalizado para se ligar a uma instância do Cloud SQL em vez de usar um endereço IP, configure a definição de nome alternativo do assunto (SAN) personalizado enquanto cria a instância. O nome DNS personalizado que inserir na definição SAN personalizada é adicionado ao campo SAN do certificado do servidor da instância. Isto permite-lhe usar o nome DNS personalizado com a validação do nome de anfitrião de forma segura.

      Antes de poder usar o nome DNS personalizado nos seus clientes e aplicações, tem de configurar o mapeamento entre o nome DNS e o endereço IP. Isto é conhecido como resolução de DNS. Pode adicionar uma lista separada por vírgulas de até três nomes DNS personalizados à definição SAN personalizada.

    3. Tome nota do endereço IP atribuído automaticamente.

      Se não estiver a usar o proxy Auth do Cloud SQL, vai usar este endereço como o endereço do anfitrião que as suas aplicações ou ferramentas usam para estabelecer ligação à instância.

    4. Defina a palavra-passe do utilizador do MySQL "root@%":
            gcloud sql users set-password root \
            --host=% \
            --instance INSTANCE_NAME \
            --password PASSWORD
            

    Terraform

    Para criar uma instância, use um recurso do 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
    }

    Aplique as alterações

    Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.

    Prepare o Cloud Shell

    1. Inicie o Cloud Shell.
    2. Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.

      Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.

      export GOOGLE_CLOUD_PROJECT=PROJECT_ID

      As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.

    Prepare o diretório

    Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).

    1. No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o ficheiro é denominado main.tf.
      mkdir DIRECTORY && cd DIRECTORY && touch main.tf
    2. Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.

      Copie o exemplo de código para o ficheiro main.tf criado recentemente.

      Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.

    3. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
    4. Guarde as alterações.
    5. Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
      terraform init

      Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção -upgrade:

      terraform init -upgrade

    Aplique as alterações

    1. Reveja a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expetativas:
      terraform plan

      Faça as correções necessárias à configuração.

    2. Aplique a configuração do Terraform executando o seguinte comando e introduzindo yes no comando:
      terraform apply

      Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).

    3. Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.

    Eliminar as alterações

    Para eliminar as alterações, faça o seguinte:

    1. Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento deletion_protection como false.
      deletion_protection =  "false"
    2. Aplique a configuração do Terraform atualizada executando o seguinte comando e introduzindo yes no comando:
      terraform apply
    1. Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo yes no comando:

      terraform destroy

    REST v1

    Crie a instância

    Este exemplo cria uma instância. Alguns parâmetros opcionais, como as cópias de segurança e o registo binário, também estão incluídos. Para ver uma lista completa de parâmetros para esta chamada, consulte a página Instances:insert. Para informações sobre as definições de instâncias, incluindo valores válidos para a região, consulte Definições de instâncias.

    Não inclua informações confidenciais ou de identificação pessoal no ID da instância, uma vez que é visível externamente.
    Não tem de incluir o ID do projeto no nome da instância. Isto é feito automaticamente sempre que apropriado (por exemplo, nos ficheiros de registo).

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu projeto
    • INSTANCE_ID: o ID da instância
    • DATABASE_VERSION: a versão da base de dados. Por exemplo: MYSQL_8_4 ou MYSQL_8_0_37. Se não especificar uma versão da base de dados, a versão predefinida da base de dados é MYSQL_8_0.
    • REGION: a região
    • MACHINE_TYPE: o tipo de máquina
    • EDITION_TYPE: a sua edição do Cloud SQL
    • DATA_CACHE_ENABLED: (opcional) defina como true para ativar a cache de dados para a sua instância
    • PRIVATE_NETWORK: especifique o nome da rede da nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
    • AUTHORIZED_NETWORKS: para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.
    • CA_MODE: especifique uma hierarquia da autoridade de certificação para a instância, GOOGLE_MANAGED_INTERNAL_CA ou GOOGLE_MANAGED_CAS_CA. Se não especificar serverCaMode, a configuração predefinida é GOOGLE_MANAGED_INTERNAL_CA. Esta funcionalidade está em pré-visualização.
    • DNS_NAMES: adicione uma lista separada por vírgulas de até três nomes DNS ao certificado do servidor da sua instância do Cloud SQL. Pode proteger vários nomes de DNS com um único certificado. Esta funcionalidade está disponível na pré-visualização e apenas para instâncias CUSTOMER_MANAGED_CAS_CA.

    Para definir uma política de palavras-passe ao criar uma instância, inclua o objeto passwordValidationPolicy no pedido. Defina os seguintes parâmetros, conforme necessário:

    • enablePasswordPolicy: ativa a política de palavras-passe quando definida como true.

      Para remover a política de palavras-passe, pode usar um pedido PATCH com null como valor para enablePasswordPolicy. Neste caso, os outros parâmetros da política de palavras-passe são repostos.

    • minLength: especifica o número mínimo de carateres que a palavra-passe tem de ter.
    • complexity: verifica se a palavra-passe é uma combinação de carateres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor predefinido é COMPLEXITY_DEFAULT.
    • reuseInterval: especifica o número de palavras-passe anteriores que não pode reutilizar.

      Suportado apenas no Cloud SQL para MySQL 8.0 e versões posteriores.

    • disallowUsernameSubstring: impede a utilização do nome de utilizador na palavra-passe quando definido como true.

    Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

    Método HTTP e URL:

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

    Corpo JSON do pedido:

    {
      "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",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      },
      "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
    }
    

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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"
    }
    

    A resposta é uma operação de longa duração, que pode demorar alguns minutos a ser concluída.

    Atualize a palavra-passe de raiz

    Quando a instância terminar a inicialização, atualize a palavra-passe de raiz:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do seu projeto
    • instance-id: ID da instância criado no passo anterior
    • root-password: palavra-passe de raiz pretendida

    Método HTTP e URL:

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

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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"
    }
    

    Obtenha o endereço IPv4

    Recupere o endereço IPv4 atribuído automaticamente para a nova instância:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do seu projeto
    • instance-id: ID da instância criado no passo anterior

    Método HTTP e URL:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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.iam.gserviceaccount.com",
      "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"
    }
    

    Procure o campo ipAddress na resposta.

    REST v1beta4

    Crie a instância

    Este exemplo cria uma instância. Alguns parâmetros opcionais, como as cópias de segurança e o registo binário, também estão incluídos. Para ver uma lista completa dos parâmetros desta chamada, consulte a página instances:insert. Para informações sobre as definições de instâncias, incluindo valores válidos para a região, consulte o artigo Definições de instâncias

    Não inclua informações confidenciais ou de identificação pessoal no ID da instância, uma vez que é visível externamente.
    Não tem de incluir o ID do projeto no nome da instância. Isto é feito automaticamente sempre que apropriado (por exemplo, nos ficheiros de registo).

    Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu projeto
    • INSTANCE_ID: o ID da instância
    • DATABASE_VERSION: a versão da base de dados. Por exemplo: MYSQL_8_4 ou MYSQL_8_0_37. Se não especificar uma versão da base de dados, a versão predefinida é MYSQL_8_0.
    • REGION: a região
    • MACHINE_TYPE: o tipo de máquina
    • EDITION_TYPE: a sua edição do Cloud SQL .
    • DATA_CACHE_ENABLED: (opcional) defina como true para ativar a cache de dados para a sua instância
    • PRIVATE_NETWORK: especifique o nome da rede da nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
    • AUTHORIZED_NETWORKS: para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.
    • CA_MODE: especifique uma hierarquia da autoridade de certificação para a instância, GOOGLE_MANAGED_INTERNAL_CA ou GOOGLE_MANAGED_CAS_CA. Se não especificar serverCaMode, a configuração predefinida é GOOGLE_MANAGED_INTERNAL_CA. Esta funcionalidade está em pré-visualização.
    • DNS_NAMES: adicione uma lista separada por vírgulas de até três nomes DNS ao certificado do servidor da sua instância do Cloud SQL. Pode proteger vários nomes de DNS com um único certificado. Esta funcionalidade está disponível na pré-visualização e apenas para instâncias CUSTOMER_MANAGED_CAS_CA.

    Para definir uma política de palavras-passe ao criar uma instância, inclua o objeto passwordValidationPolicy no pedido. Defina os seguintes parâmetros, conforme necessário:

    • enablePasswordPolicy: ativa a política de palavras-passe quando definida como true.

      Para remover a política de palavras-passe, pode usar um pedido PATCH com null como valor para enablePasswordPolicy. Neste caso, os outros parâmetros da política de palavras-passe são repostos.

    • minLength: especifica o número mínimo de carateres que a palavra-passe tem de ter.
    • complexity: verifica se a palavra-passe é uma combinação de carateres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor predefinido é COMPLEXITY_DEFAULT.
    • reuseInterval: especifica o número de palavras-passe anteriores que não pode reutilizar.

      Suportado apenas no Cloud SQL para MySQL 8.0 e versões posteriores.

    • disallowUsernameSubstring: impede a utilização do nome de utilizador na palavra-passe quando definido como true.

    Método HTTP e URL:

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

    Corpo JSON do pedido:

    {
      "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",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      },
      "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
    }
    

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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"
    }
    

    A resposta é uma operação de longa duração, que pode demorar alguns minutos a ser concluída.

    Atualize a palavra-passe de raiz

    Quando a instância terminar a inicialização, atualize a palavra-passe de raiz:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do seu projeto
    • instance-id: ID da instância criado no passo anterior
    • root-password: palavra-passe de raiz pretendida

    Método HTTP e URL:

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

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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"
    }
    

    A resposta é uma operação de longa duração, que pode demorar alguns minutos a ser concluída.

    Obtenha o endereço IPv4

    Recupere o endereço IPv4 atribuído automaticamente para a nova instância:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do seu projeto
    • instance-id: ID da instância criado no passo anterior

    Método HTTP e URL:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "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.iam.gserviceaccount.com",
      "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"
    }
    

    Procure o campo ipAddress na resposta.

    Para ver como o pedido da API REST subjacente é construído para esta tarefa, consulte o Explorador de APIs na página instances:insert.

    Gere o ponto final de escrita

    Um ponto final de gravação é um nome de serviço de nomes de domínio (DNS) global que é resolvido automaticamente para o endereço IP da instância principal atual. Este ponto final redireciona as ligações recebidas para a nova instância principal automaticamente em caso de uma operação de comutação por falha ou comutação de uma réplica. Pode usar o ponto final de gravação numa string de ligação SQL em vez de um endereço IP. Ao usar um ponto final de gravação, pode evitar ter de fazer alterações à ligação da aplicação quando ocorre uma indisponibilidade da região.

    Para mais informações sobre como usar um ponto final de escrita para se ligar a uma instância, consulte o artigo Ligue-se a uma instância através de um ponto final de escrita.

    Especifique a versão secundária da base de dados para o MySQL 8.0

    Pode especificar a versão secundária de uma instância do MySQL 8.0 existente através do comando gcloud ou da API REST.

    gcloud

    Use o comando gcloud sql instances create com a flag --database-version.

    Substitua as seguintes variáveis antes de executar o comando:

    • INSTANCE_NAME: o nome da instância.
    • DATABASE_VERSION: A versão secundária da base de dados da instância: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, 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 (versão secundária predefinida para o MySQL 8.0) ou MYSQL_8_0_42. Se especificar MYSQL_8_0, é usada a versão secundária predefinida.

      Se não especificar esta marca, é usada a versão principal predefinida, MYSQL_8_0.

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

    Para ver informações detalhadas, consulte a documentação sobre como criar uma instância através do gcloud.

    REST v1

    Use um pedido POST com o método instances:insert e a flag databaseVersion.

        POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
    Antes de usar qualquer um dos dados do pedido, substitua estas variáveis:
    • project_id: o ID do projeto.
    • instance_id: o nome da instância.
    • databaseVersion: A versão da base de dados da instância: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, 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 (versão secundária predefinida para o MySQL 8.0) ou MYSQL_8_0_42. Se especificar MYSQL_8_0 como a versão, é usada a versão secundária predefinida. Se não especificar a marca databaseVersion, é usada a versão principal predefinida, MYSQL_8_0.

    Para ver informações detalhadas, consulte a documentação sobre como criar uma instância através da API REST v1.

    REST v1beta4

    Use um pedido POST com o método instances:insert e a flag databaseVersion.

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

    Antes de usar qualquer um dos dados do pedido, substitua estas variáveis:

    • project_id: o ID do projeto.
    • instance_id: o nome da instância.
    • databaseVersion: A versão da base de dados da instância: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, 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 (versão secundária predefinida para o MySQL 8.0) ou MYSQL_8_0_42. Se especificar MYSQL_8_0, é usada a versão secundária predefinida. Se não especificar a marca databaseVersion, é usada a versão principal predefinida, MYSQL_8_0.

    Para obter informações detalhadas, consulte a documentação sobre como criar uma instância através da API REST v1beta4.

    Versão secundária da base de dados para réplicas de leitura, clones e PITR

    Quando cria uma réplica de leitura, pode especificar a versão secundária da base de dados da réplica de leitura. Por predefinição, as novas réplicas de leitura são criadas na versão secundária predefinida.

    Quando clona uma instância, a instância recém-criada tem a mesma versão secundária que a da origem.

    Quando realiza uma recuperação num determinado momento, a instância recém-criada tem a mesma versão secundária da base de dados que a da origem.

    Configurações de instâncias personalizadas

    Determina a memória e os núcleos virtuais disponíveis para a sua instância do Cloud SQL. Os tipos de máquinas fazem parte de uma série de máquinas, e a disponibilidade da série de máquinas é determinada pela sua edição do Cloud SQL.

    Para instâncias da edição Cloud SQL Enterprise Plus, o Cloud SQL oferece tipos de máquinas predefinidos para as suas instâncias nas séries de máquinas N2 e C4A.

    Para instâncias da Cloud SQL Enterprise Edition, o Cloud SQL oferece tipos de máquinas predefinidos e personalizados.

    Se precisar de processamento em tempo real, como o processamento de transações online (OLTP), certifique-se de que a sua instância tem memória suficiente para conter todo o conjunto de trabalho. No entanto, existem outros fatores que podem afetar os requisitos de memória, como o número de ligações ativas e os processos internos. Faça testes de carga para evitar problemas de desempenho no seu ambiente de produção.

    Quando configurar a instância, selecione memória e vCPUs suficientes para satisfazer as suas necessidades e aumente a escala da instância à medida que os requisitos aumentam. Uma configuração de máquina com vCPUs insuficientes pode perder a respetiva cobertura do SLA. Para mais informações, consulte as diretrizes operacionais.

    Para saber mais sobre os tipos de máquinas e as séries de máquinas disponíveis para a sua instância do Cloud SQL, consulte o artigo Vista geral das séries de máquinas.

    Resolver problemas

    Problema Resolução de problemas
    Mensagem de erro: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Não existem mais endereços disponíveis no intervalo de IP atribuído. Podem existir vários cenários possíveis:

    • O tamanho do intervalo de IP atribuído para a ligação de serviço privada é inferior a /24.
    • A dimensão do intervalo de IP atribuído para a ligação de serviço privado é demasiado pequena para o número de instâncias do Cloud SQL.
    • O requisito relativo ao tamanho do intervalo de IPs atribuído é maior se forem criadas instâncias em várias regiões. Veja a dimensão do intervalo atribuído

    Para resolver este problema, pode expandir o intervalo de IPs atribuído existente ou atribuir um intervalo de IPs adicional à ligação de serviço privado. Para mais informações, consulte o artigo Atribua um intervalo de endereços IP.

    Se usou a flag --allocated-ip-range-name ao criar a instância do Cloud SQL, só pode expandir o intervalo de IP especificado.

    Se estiver a atribuir um novo intervalo, certifique-se de que a atribuição não se sobrepõe a nenhuma atribuição existente.

    Depois de criar um novo intervalo de IPs, atualize o peering de VPC com o seguinte 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 estiver a expandir uma atribuição existente, tenha cuidado para aumentar apenas o intervalo de atribuição e não o diminuir. Por exemplo, se a atribuição original for 10.0.10.0/24, faça a nova atribuição, pelo menos, em 10.0.10.0/23.

    Em geral, se começar com uma atribuição /24, diminuir a máscara em 1 para cada condição (grupo de tipos de instâncias adicional, região adicional) é uma boa regra geral. Por exemplo, se tentar criar grupos de tipos de instâncias em simultâneo na mesma atribuição, passar de /24 para /23 é suficiente.

    Depois de expandir um intervalo de IP existente, atualize a interligação de VPC com o seguinte comando:

    gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    --project=PROJECT_ID
        
    Mensagem de erro: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Tente criar novamente a instância do Cloud SQL.
    Mensagem de erro: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

    Ative a API Service Networking através do seguinte comando e tente criar novamente a instância do Cloud SQL.

    gcloud services enable servicenetworking.googleapis.com \
    --project=PROJECT_ID
        
    Mensagem de erro: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Quando cria uma instância com um endereço IP privado, é criada uma conta de serviço no momento através da API Service Networking. Se ativou recentemente a API Service Networking, a conta de serviço pode não ser criada e a criação da instância falha. Neste caso, tem de aguardar que a conta de serviço seja propagada por todo o sistema ou adicioná-la manualmente com as autorizações necessárias.
    Mensagem de erro: More than 3 subject alternative names are not allowed. Está a tentar usar um SAN personalizado para adicionar mais de três nomes DNS ao certificado do servidor de uma instância do Cloud SQL. Não pode adicionar mais de três nomes de DNS à instância.
    Mensagem de erro: Subject alternative names %s is too long. The maximum length is 253 characters. Certifique-se de que os nomes DNS que quer adicionar ao certificado do servidor de uma instância do Cloud SQL não têm mais de 253 carateres.
    Mensagem de erro: Subject alternative name %s is invalid.

    Verifique se os nomes DNS que quer adicionar ao certificado do servidor de uma instância do Cloud SQL cumprem os seguintes critérios:

    • Não têm carateres universais.
    • Não têm pontos finais.
    • Cumprem as especificações da RFC 1034.

    O que se segue?

    1. Crie uma base de dados MySQL na instância.
    2. Crie utilizadores do MySQL na instância.
    3. Proteja e controle o acesso à instância.
    4. Ligue-se à instância com um cliente MySQL.
    5. Importe dados para a base de dados.
    6. Saiba mais sobre as definições de instância.