Criar instâncias

Nesta página, descrevemos como criar uma instância do Cloud SQL para MySQL.

Para saber mais sobre todas as configurações de instância, veja o artigo Configurações de instância.

Uma instância recém-criada tem quatro bancos de dados de sistema:

  • information_schema: fornece acesso a metadados do banco de dados e informações sobre o servidor MySQL.
  • mysql: o esquema do sistema. Esse arquivo contém tabelas que armazenam informações exigidas pelo servidor MySQL durante a execução.
  • performance_schema: um recurso para monitorar a execução do MySQL Server em um nível baixo.
  • sys: contém um conjunto de objetos que ajuda os DBAs e os desenvolvedores a interpretar os dados coletados pelo esquema de desempenho.

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

  • Nova arquitetura de rede SQL: é possível ter até 1.000 instâncias por projeto.
  • Arquitetura de rede SQL antiga: é possível ter até 100 instâncias por projeto.
  • Usando as duas arquiteturas: seu limite vai ficar entre 100 e 1.000, dependendo da distribuição das instâncias nas duas arquiteturas.

Registre um caso de suporte para solicitar um aumento. As réplicas de leitura são contadas como instâncias.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  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 role (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. Instale a CLI gcloud.

  5. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com 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 role (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. Instale a CLI gcloud.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

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

    gcloud init
  12. Verifique se você tem os seguintes papéis na sua conta de usuário:

    Acessar a página IAM

    Saiba mais sobre papéis e permissões

Criar uma instância do MySQL

Console

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique em Criar instância.
  3. Selecione Nova instância.
  4. No painel Escolher o mecanismo do banco de dados na página Criar uma instância, clique em Escolher MySQL.
  5. Na seção Escolher uma edição do Cloud SQL da página Criar uma instância do SQL Server, selecione a edição do Cloud SQL para sua instância: Enterprise ou Enterprise Plus.

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

  6. Selecione a predefinição de edição para sua instância. Para acessar as predefinições, clique no menu Predefinição da edição.
  7. Na seção Informações da instância, selecione a versão do banco de dados para sua instância. Para conferir as versões disponíveis, clique no menu Versão do banco de dados.
    • Se você selecionar MySQL 8.0 e MySQL 8.0.35 ou posterior para a Versão secundária, a caixa de seleção Ativar upgrade automático de versão secundária será marcada automaticamente para sua instância. Se você não quiser ativar o upgrade automático de versão, desmarque a caixa de seleção.
    • Se você selecionar MySQL 8.0 e MySQL 8.0.34 ou anterior para a Versão secundária, a caixa de seleção Ativar upgrade automático de versão secundária não estará disponível.

    A versão do banco de dados não pode ser editada depois que a instância é criada.

  8. No campo Código da instância do painel Informações da instância, insira um ID para a instância.

    Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

  9. Defina uma senha para o usuário raiz.

    Há uma opção para definir Sem senha, mas isso não é recomendado por motivos de segurança.

  10. Para ver a senha em texto não criptografado, clique no ícone Mostrar senha.

    Insira a senha manualmente ou clique em Gerar para que o Cloud SQL crie uma senha automaticamente.

  11. Opcional: configure uma política de senha para a instância da seguinte maneira:
    1. Marque a caixa de seleção Ativar políticas de senha.
    2. Clique no botão Definir política de senha, defina uma ou mais das seguintes opções e clique em Salvar.
      • Comprimento mínimo: especifica o número mínimo de caracteres que a senha precisa ter.
      • Complexidade da senha: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos.
      • Restringir a reutilização de senhas: especifica o número de senhas anteriores que não podem ser reutilizadas.

        Compatível apenas com o Cloud SQL para MySQL 8.0 e versões mais recentes.

      • Bloquear nome de usuário: impede o uso do nome de usuário na senha.
  12. Na seção Escolher região e disponibilidade por zona, selecione a região e a zona da instância. A disponibilidade da região pode ser diferente com base na edição do Cloud SQL para MySQL. Para mais informações, consulte Sobre as configurações da instância.

    Coloque a instância na mesma região que os recursos que a acessam. A região selecionada não poderá ser modificada no futuro. Na maioria dos casos, não é necessário especificar uma zona.

    Se você estiver configurando a instância para alta disponibilidade, selecione as zonas primária e secundária.

    As condições a seguir se aplicam quando a zona secundária é usada durante a criação da instância:

    • A zona padrão é Any para a zona principal e Any (different from primary) para a zona secundária.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
  13. Na seção Personalizar sua instância, atualize as configurações dela. Clique em Mostrar opções de configuração para exibir os grupos de configurações. Em seguida, expanda os grupos cujas configurações você quer revisar e personalizar. Um resumo de todas as opções selecionadas é mostrado à direita. A personalização dessas configurações de instância é opcional. Os padrões são atribuídos em todos os casos em que nenhuma personalização é feita.

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

    Configuração Observações
    Tipo de máquina
    Tipo de máquina Selecione entre "Núcleo compartilhado" ou "Núcleo dedicado". Para o núcleo compartilhado, cada tipo de máquina é classificado pelo número de CPUs (núcleos) e a quantidade de memória da instância.
    Núcleos Número de vCPUs da instância. Saiba mais.
    Memória A quantidade de memória da instância, em GB. Saiba mais.
    Personalizado Para o tipo de máquina com 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 você seleciona essa opção, precisa selecionar o número de núcleos e a quantidade de memória para a instância. Saiba mais.
    Cache de dados
    Ativar dados de cache Por padrão, a opção de ativar o cache de dados é selecionada automaticamente para instâncias da edição Enterprise Plus do Cloud SQL para MySQL. Se você não quiser ativar o cache de dados, desmarque a caixa de seleção Ativar cache de dados. Para mais informações sobre cache de dados, consulte cache de dados.
    Armazenamento
    Tipo de armazenamento Determina se a instância usa armazenamento SSD ou HDD. Saiba mais.
    Capacidade de armazenamento A quantidade de armazenamento provisionada para a instância. Saiba mais.
    Ativar aumento automático de armazenamento Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais.
    Criptografia
    Criptografia gerenciada pelo GoogleA opção padrão.
    Chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês)Selecione para usar sua chave com o Google Cloud Key Management Service. Saiba mais.
    Conexões
    IP privado Adiciona um endereço IP privado à instância. Escolha uma conexão de acesso a serviços particulares, uma conexão do Private Service Connect ou ambas para sua instância. Sua seleção fornece a conexão de rede particular para a instância. Em todos os casos, é necessário fazer uma configuração adicional.

    Para selecionar e configurar o acesso a serviços particulares, faça o seguinte:

    1. Marque a caixa de seleção Acesso a serviços particulares (PSA).
    2. No menu suspenso Rede VPC, selecione o nome da rede a que sua instância se conecta.
    3. No menu suspenso Intervalo de IP alocado, selecione Automático ou um intervalo de IP específico no menu suspenso.

    Para mais informações sobre como configurar o acesso a serviços particulares, consulte Configurar o acesso a serviços particulares. A instância pode ter um endereço IP público e um particular.

    Para selecionar e configurar o Private Service Connect, faça o seguinte:

    1. Marque a caixa de seleção Private Service Connect (PSC).
    2. Clique em Adicionar um endpoint.
    3. Na seção Configuração do endpoint, faça o seguinte:
      • No card Novo endpoint, selecione o projeto em que você quer configurar o endpoint no menu suspenso Projeto.
      • Selecione uma rede para o endpoint no menu suspenso Rede.
      • Se a API Network Connectivity ainda não estiver ativada, clique em Ativar.
    4. Para configurar as permissões para criar a política de conexão de serviço automaticamente, clique em Confirmar configuração de rede.

    Para mais informações sobre como configurar o Private Service Connect, consulte Configurar o Private Service Connect.

    IP público Adiciona um endereço IP público à instância. Em seguida, é possível adicionar redes autorizadas para se conectar à instância.

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

    Saiba mais sobre como usar o IP público.

    Redes autorizadas

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

    Permitir API Data

    Ao marcar essa caixa de seleção, você permite que usuários autorizados chamem a API Data para executar instruções SQL na instância. Para instâncias com apenas IP privado, isso permite que usuários autorizados chamem a API Data usando a internet pública.

    Ativar caminho privado

    Ao marcar essa caixa de seleção, você permite que outros serviços do Google Cloud , como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados por uma conexão particular.

    Ativar o pool de conexões gerenciado

    Ao marcar essa caixa de seleção, você ativa o pool de conexões gerenciado para sua instância. O pool de conexões gerenciado permite escalonar suas cargas de trabalho otimizando a utilização de recursos e a latência de conexão instâncias do Cloud SQL usando pool e multiplexação. Para mais informações sobre o pool de conexões gerenciado, consulte Visão geral do pool de conexões gerenciado.

    Segurança
    Modo de autoridade certificadora do servidor

    Escolha o tipo de autoridade certificadora (CA) que assina o certificado do servidor para esta instância do Cloud SQL. Saiba mais.

    Por padrão, quando você cria uma instância no console Google Cloud , ela usa a autoridade de certificação interna gerenciada pelo Google (GOOGLE_MANAGED_INTERNAL_CA), que é a opção de AC por instância.

    Rotação automática de certificados do servidor

    Se você selecionar a opção de autoridade certificadora (AC) do CAS gerenciada pelo Google (GOOGLE_MANAGED_CAS_CA) ou a opção de AC interna do CAS gerenciada pelo cliente (CUSTOMER_MANAGED_CAS_CA) como o modo de AC do servidor para a instância, poderá escolher se quer girar o certificado do servidor da instância automaticamente. Para mais informações sobre como fazer a rotação automática de certificados do servidor do Cloud SQL, consulte Ativar a rotação automática de certificados do servidor.

    Por padrão, esta opção está desativada.
    Proteção de dados
    Nível de backup A opção de backup da sua instância. Você pode escolher entre backups avançados e backups padrão.
    Automatizar backups A janela de horário em que você quer que os backups comecem. Saiba mais.
    Escolha onde quer armazenar os backupsSelecione "Multirregional" para a maioria dos casos de uso. Se você precisar armazenar backups em uma região específica, por exemplo, se houver razões regulatórias, selecione a região e selecione sua região no menu suspenso "Local".
    Escolher quantos backups automatizados armazenarO número de backups automáticos que você quer manter (de 1 a 365 dias). Saiba mais.
    Ativar recuperação pontual Ativa a recuperação pontual e a geração de registros em tempo de gravação. Saiba mais.
    Ativar proteção contra exclusão Determina se uma instância será protegida contra exclusão acidental. Saiba mais.
    Ativar backups retidos após a exclusão da instância Determina se os backups automáticos e sob demanda são retidos após a exclusão de uma instância. Saiba mais.
    Escolha quantos dias de registros serão retidos Configure a retenção de registros em tempo de gravação de um a sete dias. A configuração padrão é de sete dias. Saiba mais.
    Manutenção
    Janela preferida Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais.
    Ordem de atualizações Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Saiba mais.
    Sinalizações
    ADICIONAR SINALIZAÇÃO Você pode usar sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais.
    Insights de consulta
    Ativar o Query Insights

    Ao marcar essa caixa de seleção, você ativa os insights de consulta para sua instância. Os insights de consulta fornecem informações detalhadas sobre as consultas do banco de dados, incluindo desempenho, texto e planos de execução. Depois de selecionar os insights de consulta, é possível ativar outros recursos associados a eles. Para mais informações sobre esses recursos e insights de consulta, consulte Usar insights de consulta para melhorar o desempenho da consulta.

    Captura de desempenho

    Ao marcar a caixa de seleção Ativar o Query Insights, você também ativa a captura de performance do MySQL automaticamente.

    Se você não quiser ativar a captura de desempenho do MySQL, desmarque a caixa de seleção Captura de desempenho. É possível ativar ou desativar a captura de desempenho do MySQL para uma instância atual depois, atualizando as configurações dela. Para mais informações sobre a captura de desempenho do MySQL, consulte Visão geral da captura de desempenho do Cloud SQL.

    Marcadores
    ADICIONAR IDENTIFICADORAdicione uma chave e um valor para cada rótulo adicionado. Use rótulos para ajudar a organizar suas instâncias.
  14. Clique em Criar instância.

    Observação: pode levar alguns minutos para criar sua instância. No entanto, é possível visualizar informações sobre a instância enquanto ela está sendo criada.

gcloud

Para informações sobre como instalar e começar a usar a CLI gcloud, consulte Como instalar a CLI gcloud. Para mais 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 do Cloud SQL Enterprise Plus:

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

    Para instâncias do Cloud SQL Enterprise:

        gcloud sql instances create INSTANCE_NAME \
        --cpu=NUMBER_CPUS \
        --memory=MEMORY_SIZE \
        --region=REGION
        
    Como alternativa, use a flag --tier se você 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
      

    Há restrições quanto ao valor das vCPUs e tamanho de memória:

    • O valor das vCPUs precisa ser 1 ou um número par entre 2 e 96.
    • A memória precisa:
      • ter 0,9 a 6,5 GB por vCPU;
      • ser um múltiplo de 256 MB;
      • ter pelo menos 3,75 GB (3840 MB).

    Por exemplo, o comando a seguir cria uma instância do Cloud SQL Enterprise com duas vCPUs e 7.680 MB de memória:

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

    O comando a seguir 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 padrão de REGION é us-central1.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. ela é visível externamente.
    Não é necessário incluir a ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

    Se você estiver criando uma instância para alta disponibilidade, especifique as zonas primária e secundária usando os parâmetros --zone e --secondary-zone. As condições a seguir se aplicam quando a zona secundária é usada durante a criação ou edição da instância:

    • As zonas precisam ser válidas.
    • Se a zona secundária for especificada, a primária também precisará ser especificada.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
    • Se as zonas primária e secundária forem especificadas, elas precisarão pertencer à mesma região.

    É possível adicionar mais parâmetros para determinar outras configurações da instância:

    Configuração Parâmetro Observações
    Parâmetros obrigatórios
    Versão do banco de dados --database-version A versão do banco de dados, que é baseada na edição do Cloud SQL.
    Região --region Consulte os valores válidos.
    Definir política de senha
    Ativar política de senha --enable-password-policy Ativa a política de senha quando usada. Por padrão, a política de senha fica desativada. Quando desativados usando o parâmetro --clear-password-policy, os outros parâmetros da política de senha são redefinidos.
    Comprimento mínimo --password-policy-min-length Especifica o número mínimo de caracteres que a senha precisa ter.
    Complexidade da senha --password-policy-complexity Ativa a verificação de complexidade da senha para garantir que ela contenha um destes tipos de caractere: minúsculas, maiúsculas, numéricas e não alfanuméricas. Definir o valor como COMPLEXITY_DEFAULT.
    Restringir a reutilização de senhas --password-policy-reuse-interval Especifica o número de senhas anteriores que não podem ser reutilizadas. Compatível apenas com o Cloud SQL para MySQL 8.0 e versões mais recentes.
    Nome de usuário não permitido --password-policy-disallow-username-substring Impede o uso do nome de usuário na senha. Use o parâmetro --no-password-policy-disallow-username-substring para desativar a verificação.
    Conectividade
    Pooling de conexões gerenciado --enable-connection-pooling Ativa o pool de conexões gerenciado na nova instância. É possível configurar as opções avançadas do pool de conexões gerenciadas depois que a instância for criada.

    Observação : esse recurso está disponível apenas para instâncias da edição Cloud SQL Enterprise Plus configuradas para atender aos requisitos do pool de conexões gerenciadas.

    IP particular

    Acesso a serviços particulares

    --network

    --no-assign-ip (opcional)

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

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



    Private Service Connect

    --no-assign-ip

    --enable-private-service-connect

    --allowed-psc-projects

    --psc-auto-connections

    --enable-psc-auto-connection-policy

    --network: especifica o nome da rede VPC que você quer usar para a instância. O acesso a serviços particulares já precisa estar configurado na rede. Disponível apenas para o comando Beta (gcloud beta sql instances create).

    --no-assign-ip: a instância terá apenas um endereço IP particular.

    --allocated-ip-range-name: se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. Por exemplo, google-managed-services-default. O nome do intervalo precisa obedecer a RFC-1035 e ter de 1 a 63 caracteres. (gcloud alpha sql instances create).

    --enable-google-private-path: se você usar esse parâmetro, permitirá que outros serviços do Google Cloud , como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados por uma conexão particular.

    Esse parâmetro só será válido se:

    • Use o parâmetro --no-assign-ip.
    • Use o parâmetro --network para especificar o nome da rede VPC que você quer usar para criar uma conexão particular.

    Para instâncias do Cloud SQL que usam o Private Service Connect para conexões de IP particular, use as seguintes flags:

    --enable-private-service-connect: permite conexões de rede privada com a instância do Cloud SQL usando o Private Service Connect. Para mais informações, consulte Visão geral do Private Service Connect no Cloud SQL.

    --allowed-psc-projects: uma lista separada por vírgulas de IDs ou números de projetos permitidos de onde os endpoints do Private Service Connect podem se conectar às instâncias do Cloud SQL.

    --psc-auto-connections: se você estiver configurando endpoints automaticamente para uma instância do Cloud SQL, use a flag para especificar as redes e os projetos do consumidor para os endpoints do Private Service Connect.

    --enable-psc-auto-connection-policy: se especificado, Google Cloud cria ou atualiza uma política de conexão de serviço na rede e no projeto do consumidor para o endpoint do Private Service Connect.

    Para mais informações sobre como configurar o Private Service Connect, consulte Configurar o Private Service Connect.

    Acesso à API Data --data-api-access Controla a conectividade com a instância usando a API Data. Ela é proibida por padrão. Defina o valor como ALLOW_DATA_API para permitir que os usuários usem a API Data para se conectar à instância. Para instâncias configuradas apenas com um endereço IP privado, os usuários autorizados podem chamar a API Data na instância usando a internet pública. Defina o valor como DISALLOW_DATA_API para não permitir o uso da API Data.
    IP público --authorized-networks Nas conexões de IP público, apenas as conexões de redes autorizadas podem se conectar à instância. Saiba mais.
    SSL Enforcement

    --ssl-mode

    --require-ssl

    O parâmetro ssl-mode determina a aplicação SSL/TLS para as conexões. Para mais informações, consulte Configurações do Cloud SQL para MySQL.

    O parâmetro require-ssl determina se as conexões SSL por IP serão aplicadas ou não. require-ssl é um parâmetro legado. Em vez disso, use ssl-mode. Para mais informações, consulte IpConfiguration.

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

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

    • GOOGLE_MANAGED_INTERNAL_CA: esse é o valor padrão. Com essa 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 essa opção, uma hierarquia de ACs que consiste em uma AC raiz e ACs subordinadas do servidor gerenciadas pelo Cloud SQL e hospedadas no Google Cloud Certificate Authority Service (serviço de AC) é usada. As ACs subordinadas do servidor em uma região assinam os certificados do servidor e são compartilhadas entre as instâncias na região. Essa opção é compatível apenas com o MySQL 8.0.30 e versões mais recentes.
    • CUSTOMER_MANAGED_CAS_CA: com essa opção, você define a hierarquia de ACs e gerencia a rotação dos certificados de AC. Crie um pool de ACs no serviço de AC na mesma região da sua instância. Uma das CAs no pool é usada para assinar o certificado do servidor. Essa opção é compatível apenas com o MySQL 8.0.30 e versões mais recentes. Para mais informações, consulte Usar uma CA gerenciada pelo cliente.
    Rotação automática de certificados do servidor --server-certificate-rotation-mode

    A flag --server-certificate-rotation-mode configura o tipo de modo de rotação do certificado do servidor da instância. Você pode selecionar uma das seguintes opções:

    • NO_AUTOMATIC_ROTATION: esse é o valor padrão. Com essa opção, não haverá rotação automática de certificados do servidor. Os certificados do servidor precisam ser alternados manualmente.
    • AUTOMATIC_ROTATION_DURING_MAINTENANCE: com essa opção, a rotação automática do certificado do servidor é ativada durante a manutenção programada do Cloud SQL ou atualizações de manutenção de autoatendimento. Requer que server_ca_mode seja GOOGLE_MANAGED_CAS_CA ou CUSTOMER_MANAGED_CAS_CA.
    Arquitetura de rede --enforce-new-sql-network-architecture Forçar o uso da nova arquitetura de rede para a instância no momento da criação. Usar essa flag ao criar uma instância antes que o projeto seja 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 houver endereços IP suficientes restantes no intervalo alocado. Para mais informações, consulte Fazer upgrade de uma instância para a nova arquitetura de rede e Alocar 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 compartilhado (db-f1-micro ou db-g1-small). Para uma configuração de instância personalizada, use os parâmetros --cpu ou --memory. Consulte Escolher uma série de máquinas para ver as configurações possíveis.
    Tipo de armazenamento --storage-type Determina se a instância usa armazenamento SSD ou HDD. Saiba mais.
    Capacidade de armazenamento --storage-size Quantidade de armazenamento provisionada para a instância em GB.Saiba mais.
    Aumento automático de armazenamento --storage-auto-increase Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais.
    Limite de aumento automático de armazenamento --storage-auto-increase-limit Determina o quanto o Cloud SQL pode expandir o armazenamento automaticamente. Saiba mais.
    Cache de dados (opcional) --enable-data-cache Ativa ou desativa o cache de dados para as instâncias. Para mais informações, consulte cache de dados.
    Backups automáticos e alta disponibilidade
    Alta disponibilidade --availability-type Para uma instância altamente disponível, defina como REGIONAL. Saiba mais.
    Zona secundária --secondary-zone Se você estiver criando uma instância para alta disponibilidade, poderá especificar as zonas primária e secundária usando --zone e --secondary-zone parameters. As restrições a seguir se aplicam quando a zona secundária é usada durante a criação ou edição da instância:
    • As zonas precisam ser válidas.
    • Se a zona secundária for especificada, a primária também precisará ser especificada.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.

      Se as zonas primária e secundária forem especificadas, elas precisarão pertencer à mesma região.

    Backups automáticos --backup-start-time A janela do horário que você quer que os backups comecem. Saiba mais.
    Configurações de retenção para backups automáticos --retained-backups-count O número de backups automáticos a serem mantidos. Saiba mais.
    Geração de registros binários --enable-bin-log A geração de registros binários permite a replicação e a recuperação pontual. Saiba mais.
    Configurações de retenção para geração de registros binários --retained-transaction-log-days O número de dias de retenção de registros binários para recuperação pontual. Saiba mais.
    Recuperação pontual --enable-point-in-time-recovery Ativa a recuperação pontual e a geração de registros em tempo de gravação. Saiba mais.
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados --database-flags Você pode usar sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais sobre as sinalizações do banco de dados. Saiba mais sobre como formatar este parâmetro.
    Cronograma de manutenção
    Janela de manutenção --maintenance-window-day,
    --maintenance-window-hour
    Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais.
    Dia/hora da manutenção --maintenance-release-channel Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Use preview para atualizações anteriores e production para atualizações posteriores. Saiba mais.
    Upgrade automático de versão secundária
    Ativar o upgrade automático da versão secundária --enable-auto-upgrade-minor-version Para instâncias do MySQL 8.0 em que você especifica uma versão secundária 8.0.35 ou mais recente, por exemplo, --database-version=MYSQL_8_0_35. Ative os upgrades automáticos de versão secundária para a versão secundária padrão do Cloud SQL para MySQL 8.0 durante cada atualização de manutenção regular programada. Se você criar a instância sem especificar uma versão secundária (--database-version=MYSQL_8_0), os upgrades automáticos de versão secundária serão ativados por padrão.
    Insights de consulta
    --insights-config-query-insights-enabled Permite que o Query Insights forneça análises de consultas e planos de consulta.
    --insights-config-enhanced-query-insights-enabled Ativa insights de consultas avançados para a edição Enterprise Plus do Cloud SQL, oferecendo análises de consultas mais detalhadas.
    --performance-capture-config Use essa flag para configurar as opções de captura de desempenho do MySQL na sua instância do MySQL. Ao ativar os insights de consulta ou os insights de consulta aprimorados, você também ativa a captura de performance do MySQL com condições de acionamento padrão.

    É possível configurar ou desativar a captura de desempenho com a flag --performance-capture-config no mesmo comando de criação ou atualizando a instância depois. Para mais informações, consulte Configurar a captura de performance do MySQL.
    SAN personalizada
    Adicionar um nome alternativo do assunto (SAN) personalizado --custom-subject-alternative-names=DNS_NAMES

    Se você quiser usar um nome DNS personalizado para se conectar a uma instância do Cloud SQL em vez de um endereço IP, configure a configuração de nome alternativo do assunto (SAN, na sigla em inglês) personalizada ao criar a instância. O nome DNS personalizado inserido na configuração SAN personalizada é adicionado ao campo SAN do certificado do servidor da instância. Isso permite usar o nome DNS personalizado com validação de nome de host de forma segura.

    Antes de usar o nome DNS personalizado em clientes e aplicativos, configure o mapeamento entre o nome DNS e o endereço IP. Isso é conhecido como resolução de DNS. É possível adicionar uma lista separada por vírgulas de até três nomes de DNS personalizados à configuração de SAN personalizada.

  3. Observe o endereço IP atribuído automaticamente.

    Se não estiver usando o proxy do Cloud SQL Auth, você usará esse endereço como o endereço do host que os aplicativos ou as ferramentas usam para se conectar à instância.

  4. Defina a senha para o usuário 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 em um Google Cloud projeto, siga as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto Google Cloud padrão em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

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

    terraform init -upgrade

Aplique as alterações

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

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

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu Google Cloud projeto para conferir os resultados. No console do Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

Criar instância

Este exemplo cria uma instância. Alguns parâmetros opcionais, como backups e geração de registros binários, também estão incluídos. Para ver uma lista completa de parâmetros dessa chamada, consulte a página Instances:insert. Para informações sobre configurações da instância, incluindo valores válidos para região, consulte Configurações da instância.

Não inclua informações sensíveis ou de identificação pessoal no ID da instância. Ele é visível externamente.
Não é necessário incluir a ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto;
  • INSTANCE_ID: o ID da sua instância
  • DATABASE_VERSION: a versão do banco de dados. Por exemplo: MYSQL_9_7, MYSQL_8_4 ou MYSQL_8_0_37. Se você não especificar uma versão do banco de dados, a versão padrão será MYSQL_8_4.
  • REGION: a região
  • MACHINE_TYPE: o tipo de máquina
  • EDITION_TYPE: sua edição do Cloud SQL
  • DATA_CACHE_ENABLED: (opcional) defina como true para ativar o cache de dados na instância
  • PRIVATE_NETWORK: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • AUTHORIZED_NETWORKS: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.
  • CA_MODE: especifique uma hierarquia de autoridade certificadora para a instância, GOOGLE_MANAGED_INTERNAL_CA ou GOOGLE_MANAGED_CAS_CA. Se você não especificar serverCaMode, a configuração padrão será GOOGLE_MANAGED_INTERNAL_CA. Esse recurso está em pré-lançamento.
  • SERVER_CERTIFICATE_ROTATION_MODE: para rotação automática de certificados do servidor para
  • SERVER_CERTIFICATE_ROTATION_MODE: para a rotação automática de certificados do servidor na instância, especifique AUTOMATIC_ROTATION_DURING_MAINTENANCE. Se você não especificar serverCertificateRotationMode, a configuração padrão será NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: adicione uma lista separada por vírgulas de até três nomes de DNS ao certificado do servidor da instância do Cloud SQL. É possível proteger vários nomes de DNS com um único certificado. Esse recurso está disponível em pré-lançamento e somente para instâncias CUSTOMER_MANAGED_CAS_CA.

Para definir uma política de senha ao criar uma instância, inclua o objeto passwordValidationPolicy na solicitação. Defina os seguintes parâmetros, conforme necessário:

  • enablePasswordPolicy: ativa a política de senha quando definida como true.

    Para remover a política de senha, use uma solicitação PATCH com null como o valor de enablePasswordPolicy. Nesse caso, os outros parâmetros da política de senha serão redefinidos.

  • minLength: especifica o número mínimo de caracteres que a senha precisa ter.
  • complexity: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor padrão é COMPLEXITY_DEFAULT.
  • reuseInterval: especifica o número de senhas anteriores que não podem ser reutilizadas.

    Compatível apenas com o Cloud SQL para MySQL 8.0 e versões mais recentes.

  • disallowUsernameSubstring: impede o uso do nome de usuário na senha quando definido como true.

Você pode usar o campo sqlNetworkArchitecture para forçar o uso da nova arquitetura de rede na instância após a criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as implicações dela, consulte Fazer upgrade de uma instância para a nova arquitetura de rede e Alocar um intervalo de endereços IP.

Para configurar a instância para insights de consultas, faça as substituições adequadas na seção insightsConfig:

  • QUERY_INSIGHTS_ENABLED: defina como true para ativar o Query Insights na sua instância.
  • RECORD_CLIENT_ADDRESS: definido como true para armazenar os endereços IP do cliente de onde as consultas estão vindo e ajudar a agrupar esses dados para gerar métricas. As consultas vêm de mais de um host. A análise de gráficos para consultas de endereços IP de clientes pode ajudar a identificar a origem de um problema.
  • RECORD_APPLICATION_TAGS: definido como true para armazenar tags de aplicativos que ajudam a determinar as APIs e as rotas modelo-visualização-controlador (MVC) que fazem solicitações e agrupam os dados para executar métricas neles. Essa opção exige que você comente consultas com um conjunto específico de tags. Para isso, use a biblioteca de instrumentação automática de mapeamento relacional de objetos (ORM) de código aberto sqlcommenter. Essas informações ajudam o Query Insights a identificar a origem de um problema e a MVC dele. Os caminhos de aplicativo ajudam no monitoramento de aplicativos.
  • QUERY_STRING_LENGTH: definido como o limite de tamanho da consulta em bytes. Define o limite de tamanho da consulta padrão. Comprimentos de consulta mais altos são mais úteis para consultas analíticas, mas também exigem mais memória. Se você mudar o tamanho da consulta, será necessário reiniciar a instância. Ainda é possível adicionar tags a consultas que excedem o limite de tamanho. Para a edição Cloud SQL Enterprise, é possível especificar um valor em bytes de 256 a 4500. O tamanho de consulta padrão é 1024 bytes. Para o Cloud SQL Enterprise Plus, é possível especificar um limite em bytes de 1 a 1048576. O valor padrão é 1024 bytes (1 KB).

  • QUERY_PLANS_PER_MINUTE: definido como o número de planos de consulta a serem capturados por minuto. Por padrão, no máximo cinco amostras de planos de consulta executadas são capturadas por minuto em todos os bancos de dados na instância. É provável que o aumento da taxa de amostragem ofereça mais pontos de dados, mas pode adicionar uma sobrecarga de desempenho. Para desativar a amostragem, defina esse valor como 0. Para a edição Cloud SQL Enterprise, é possível mudar o valor de 0 para 20. Para a edição Enterprise Plus do Cloud SQL, é possível aumentar o máximo para até 200 e fornecer mais pontos de dados.

  • ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: defina como true para ativar o Query Insights avançado na sua instância.

Para o campo performanceCaptureConfig, inclua as seguintes configurações de flag. Se você não definir valores para as flags, o agente de monitoramento usará os valores padrão para os limites. Para mais informações sobre os gatilhos definidos por essas flags, consulte Gatilhos de captura de desempenho.

  • PERFORMANCE_CAPTURE_ENABLED: defina como false para desativar a captura de desempenho do MySQL na sua instância. Se queryInsightsEnabled estiver definido como true, a captura de performance será ativada automaticamente e aplicará os valores padrão às condições de acionamento com base em limites.
  • PROBING_INTERVAL_SECONDS: um número inteiro entre 30 e 86400. O intervalo de tempo, em segundos, entre as sondagens de métricas. O padrão é 30.
  • PROBE_THRESHOLD: o número de vezes consecutivas que um limite precisa ser excedido para acionar uma captura de desempenho. O intervalo válido é de 1 a 20. O padrão é 3.
  • RUNNING_THREADS_THRESHOLD: para instâncias principais, o número mínimo de threads ativas consideradas acima do limite. Por exemplo, 10. Precisa ser maior ou igual a 10. Se não for definido, o padrão será baseado no tamanho da instância. O padrão é MIN(600, cpuCount * 20). O padrão é 600 ou o número de vCPUs na instância multiplicado por 20, o que for menor.
  • SECONDS_BEHIND_SOURCE_THRESHOLD: para réplicas de leitura, o atraso mínimo de replicação, em segundos, considerado acima do limite. Precisa ser maior que 1. O padrão é 900.
  • TRANSACTION_DURATION_THRESHOLD: a duração, em segundos, de uma transação não confirmada antes de ser rastreada e incluída em um registro de captura de desempenho. Por exemplo, 300. O valor mínimo é 60. O padrão é 3600.
  • SECONDS: a duração, em segundos, das transações de longa duração que serão encerradas automaticamente. Esse limite não pode ser definido com um valor menor do que o valor definido para o parâmetro transactionDurationThreshold (TRANSACTION_DURATION_THRESHOLD).
  • TRANSACTION_TYPE: determina as categorias de transações a serem encerradas. Os valores possíveis são:
    • READ_ONLY_TRANSACTIONS: encerra apenas consultas somente leitura ou SELECT. Esse é o padrão se transactionKillType não for especificado.
    • ALL_TRANSACTIONS: encerra qualquer consulta em execução que exceda o limite, incluindo consultas com operações de gravação. Isso inclui INSERT, UPDATE, DELETE e outras instruções DDL.
  • EXCLUSION_LIST: uma lista de strings a serem dispensadas. Você pode fornecer as entradas como user@host ou um usuário independente, que usa user@% por padrão. A lista aceita os caracteres curinga % e _ para correspondência na parte do host.
  • CPU_UTILIZATION_THRESHOLD_PERCENT: a porcentagem geral de uso da CPU que é excedida de forma consistente. Por exemplo, 90. O valor mínimo é 10, e o máximo é 99. O padrão é 0, que está desativado.
  • MEMORY_USAGE_THRESHOLD_PERCENT: a porcentagem geral de uso da memória a ser excedida de forma consistente. Por exemplo, 90. O valor mínimo é 10, e o máximo é 99. O padrão é 0, que está desativado.
  • TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: o limite para transações que podem estar no estado LOCK WAIT. Por exemplo, 50. O valor mínimo é 10, e o máximo é 10000. O padrão é 0, que está desativado.
  • SEMAPHORE_WAIT_THRESHOLD_COUNT: o limite para o número de linhas de execução aguardando semáforos do InnoDB do comando SHOW ENGINE INNODB STATUS. Por exemplo, 20. O valor mínimo é 10, e o máximo é 10000. O padrão é 0, que está desativado.
  • HISTORY_LIST_LENGTH_THRESHOLD_COUNT: o limite para a contagem do comprimento da lista de histórico (HLL) do InnoDB permitida para o banco de dados. Por exemplo, 100000. O valor mínimo é 10000, e o máximo é 10000000. O padrão é 0, que está desativado.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 levar alguns minutos para ser concluída.

Atualize a senha raiz

Quando a inicialização da instância for concluída, atualize a senha raiz:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior
  • root-password: senha raiz escolhida

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Recuperar o endereço IPv4

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior

Método HTTP e URL:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Criar instância

Este exemplo cria uma instância. Alguns parâmetros opcionais, como backups e geração de registros binários, também estão incluídos. Para ver uma lista completa de parâmetros dessa chamada, consulte a página instances:insert. Para informações sobre configurações da instância, incluindo valores válidos para a região, consulte Configurações de instância.

Não inclua informações sensíveis ou de identificação pessoal no ID da instância. Ele é visível externamente.
Não é necessário incluir a ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto;
  • INSTANCE_ID: o ID da sua instância
  • DATABASE_VERSION: a versão do banco de dados. Por exemplo: MYSQL_9_7, MYSQL_8_4 ou MYSQL_8_0_37. Se você não especificar uma versão do banco de dados, a versão padrão será MYSQL_8_4.
  • REGION: a região
  • MACHINE_TYPE: o tipo de máquina
  • EDITION_TYPE: sua edição do Cloud SQL
  • DATA_CACHE_ENABLED: (opcional) defina como true para ativar o cache de dados na instância
  • PRIVATE_NETWORK: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • AUTHORIZED_NETWORKS: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.
  • CA_MODE: especifique uma hierarquia de autoridade certificadora para a instância, GOOGLE_MANAGED_INTERNAL_CA ou GOOGLE_MANAGED_CAS_CA. Se você não especificar serverCaMode, a configuração padrão será GOOGLE_MANAGED_INTERNAL_CA. Esse recurso está em pré-lançamento.
  • SERVER_CERTIFICATE_ROTATION_MODE: para a rotação automática de certificados do servidor na sua instância, especifique AUTOMATIC_ROTATION_DURING_MAINTENANCE. Se você não especificar serverCertificateRotationMode, a configuração padrão será NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: adicione uma lista separada por vírgulas de até três nomes de DNS ao certificado do servidor da instância do Cloud SQL. É possível proteger vários nomes de DNS com um único certificado. Esse recurso está disponível em pré-lançamento e somente para instâncias CUSTOMER_MANAGED_CAS_CA.

Você pode usar o campo sqlNetworkArchitecture para forçar o uso da nova arquitetura de rede na instância após a criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as implicações dela, consulte Fazer upgrade de uma instância para a nova arquitetura de rede e Alocar um intervalo de endereços IP.

Para definir uma política de senha ao criar uma instância, inclua o objeto passwordValidationPolicy na solicitação. Defina os seguintes parâmetros, conforme necessário:

  • enablePasswordPolicy: ativa a política de senha quando definida como true.

    Para remover a política de senha, use uma solicitação PATCH com null como o valor de enablePasswordPolicy. Nesse caso, os outros parâmetros da política de senha serão redefinidos.

  • minLength: especifica o número mínimo de caracteres que a senha precisa ter.
  • complexity: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor padrão é COMPLEXITY_DEFAULT.
  • reuseInterval: especifica o número de senhas anteriores que não podem ser reutilizadas.

    Compatível apenas com o Cloud SQL para MySQL 8.0 e versões mais recentes.

  • disallowUsernameSubstring: impede o uso do nome de usuário na senha quando definido como true.

Para configurar a instância para insights de consultas, faça as substituições adequadas na seção insightsConfig:

  • QUERY_INSIGHTS_ENABLED: defina como true para ativar o Query Insights na sua instância.
  • RECORD_CLIENT_ADDRESS: definido como true para armazenar os endereços IP do cliente de onde as consultas estão vindo e ajudar a agrupar esses dados para gerar métricas. As consultas vêm de mais de um host. A análise de gráficos para consultas de endereços IP de clientes pode ajudar a identificar a origem de um problema.
  • RECORD_APPLICATION_TAGS: definido como true para armazenar tags de aplicativos que ajudam a determinar as APIs e as rotas modelo-visualização-controlador (MVC) que fazem solicitações e agrupam os dados para executar métricas neles. Essa opção exige que você comente consultas com um conjunto específico de tags. Para isso, use a biblioteca de instrumentação automática de mapeamento relacional de objetos (ORM) de código aberto sqlcommenter. Essas informações ajudam o Query Insights a identificar a origem de um problema e a MVC dele. Os caminhos de aplicativo ajudam no monitoramento de aplicativos.
  • QUERY_STRING_LENGTH: definido como o limite de tamanho da consulta em bytes. Define o limite de tamanho da consulta padrão. Comprimentos de consulta mais altos são mais úteis para consultas analíticas, mas também exigem mais memória. Se você mudar o tamanho da consulta, será necessário reiniciar a instância. Ainda é possível adicionar tags a consultas que excedem o limite de tamanho. Para a edição Cloud SQL Enterprise, é possível especificar um valor em bytes de 256 a 4500. O tamanho de consulta padrão é 1024 bytes. Para o Cloud SQL Enterprise Plus, é possível especificar um limite em bytes de 1 a 1048576. O valor padrão é 1024 bytes (1 KB).

  • QUERY_PLANS_PER_MINUTE: definido como o número de planos de consulta a serem capturados por minuto. Por padrão, no máximo cinco amostras de planos de consulta executadas são capturadas por minuto em todos os bancos de dados na instância. É provável que o aumento da taxa de amostragem ofereça mais pontos de dados, mas pode adicionar uma sobrecarga de desempenho. Para desativar a amostragem, defina esse valor como 0. Para a edição Cloud SQL Enterprise, é possível mudar o valor de 0 para 20. Para a edição Enterprise Plus do Cloud SQL, é possível aumentar o máximo para até 200 e fornecer mais pontos de dados.

  • ENABLE_ENHANCED_QUERY_INSIGHTS_ENABLED: defina como true para ativar o Query Insights avançado na sua instância.

Na seção performanceCaptureConfig, inclua as seguintes configurações. Se você não definir valores para essas configurações de instância, a captura de desempenho usará os valores padrão para os limites. Para mais informações sobre os limites definidos pelos gatilhos, consulte Gatilhos de captura de performance.

  • PERFORMANCE_CAPTURE_ENABLED: defina como false para desativar a captura de desempenho do MySQL na sua instância. Se queryInsightsEnabled estiver definido como true, a captura de desempenho do MySQL será ativada automaticamente e aplicará os valores padrão às condições de acionamento baseadas em limite.
  • PROBING_INTERVAL_SECONDS: um número inteiro entre 30 e 86400. O intervalo de tempo, em segundos, entre as sondagens de métricas. O padrão é 30.
  • PROBE_THRESHOLD: o número de vezes consecutivas que um limite precisa ser excedido para acionar uma captura de desempenho. O intervalo válido é de 1 a 20. O padrão é 3.
  • RUNNING_THREADS_THRESHOLD: para instâncias principais, o número mínimo de threads ativas consideradas acima do limite. Por exemplo, 10. Precisa ser maior ou igual a 10. Se não for definido, o padrão será baseado no tamanho da instância. O padrão é MIN(600, cpuCount * 20). O padrão é 600 ou o número de vCPUs na instância multiplicado por 20, o que for menor.
  • SECONDS_BEHIND_SOURCE_THRESHOLD: para réplicas de leitura, o atraso mínimo de replicação, em segundos, considerado acima do limite. Precisa ser maior que 1. O padrão é 900.
  • TRANSACTION_DURATION_THRESHOLD: a duração, em segundos, de uma transação não confirmada antes de ser rastreada e incluída em um registro de captura de desempenho. Por exemplo, 300. O valor mínimo é 60. O padrão é 3600.
  • SECONDS: a duração, em segundos, das transações de longa duração que serão encerradas automaticamente. Esse limite não pode ser definido com um valor menor do que o valor definido para o parâmetro transactionDurationThreshold (TRANSACTION_DURATION_THRESHOLD).
  • TRANSACTION_TYPE: determina as categorias de transações a serem encerradas. Os valores possíveis são:
    • READ_ONLY_TRANSACTIONS: encerra apenas consultas somente leitura ou SELECT. Esse é o padrão se transactionKillType não for especificado.
    • ALL_TRANSACTIONS: encerra qualquer consulta em execução que exceda o limite, incluindo consultas com operações de gravação. Isso inclui INSERT, UPDATE, DELETE e outras instruções DDL.
  • EXCLUSION_LIST: uma lista de strings a serem dispensadas. Você pode fornecer as entradas como user@host ou um usuário independente, que usa user@% por padrão. A lista aceita os caracteres curinga % e _ para correspondência na parte do host.
  • CPU_UTILIZATION_THRESHOLD_PERCENT: a porcentagem geral de uso da CPU que é excedida de forma consistente. Por exemplo, 90. O valor mínimo é 10, e o máximo é 99. O padrão é 0, que está desativado.
  • MEMORY_USAGE_THRESHOLD_PERCENT: a porcentagem geral de uso da memória a ser excedida de forma consistente. Por exemplo, 90. O valor mínimo é 10, e o máximo é 99. O padrão é 0, que está desativado.
  • TRANSACTION_LOCK_WAIT_THRESHOLD_COUNT: o limite para transações que podem estar no estado LOCK WAIT. Por exemplo, 50. O valor mínimo é 10, e o máximo é 10000. O padrão é 0, que está desativado.
  • SEMAPHORE_WAIT_THRESHOLD_COUNT: o limite para o número de linhas de execução aguardando semáforos do InnoDB do comando SHOW ENGINE INNODB STATUS. Por exemplo, 20. O valor mínimo é 10, e o máximo é 10000. O padrão é 0, que está desativado.
  • HISTORY_LIST_LENGTH_THRESHOLD_COUNT: o limite para a contagem do comprimento da lista de histórico (HLL) do InnoDB permitida para o banco de dados. Por exemplo, 100000. O valor mínimo é 10000, e o máximo é 10000000. O padrão é 0, que está desativado.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 levar alguns minutos para ser concluída.

Atualize a senha raiz

Quando a inicialização da instância for concluída, atualize a senha raiz:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior
  • root-password: senha raiz escolhida

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 da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 levar alguns minutos para ser concluída.

Recuperar o endereço IPv4

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior

Método HTTP e URL:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 a solicitação da API REST de base é criada nesta tarefa, consulte a página APIs Explorer em "instances:insert".

Gerar o endpoint de gravação

Um endpoint de gravação é um nome de serviço de nome de domínio (DNS) global que se refere ao endereço IP da instância principal atual automaticamente. Esse endpoint redireciona as conexões de entrada para a nova instância principal automaticamente no caso de uma operação de failover ou alternância da réplica. É possível usar o endpoint de gravação em uma string de conexão SQL em vez de um endereço IP. Ao usar um endpoint de gravação, você evita ter que fazer mudanças na conexão do aplicativo quando ocorre uma interrupção regional.

Para mais informações sobre como usar um endpoint de gravação para se conectar a uma instância, consulte Conectar-se a uma instância usando um endpoint de gravação.

Especificar a versão secundária do banco de dados para o MySQL 8.0

É possível especificar a versão secundária de uma instância atual do MySQL 8.0 usando gcloud ou a 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 do banco de dados da instância: 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 (versão secundária padrão para MySQL 8.0) ou MYSQL_8_0_46. Se você especificar MYSQL_8_0, será usada a versão secundária padrão.

    Se você não especificar essa flag, a versão principal padrão MYSQL_8_0 será usada.

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

Se você estiver criando uma instância do MySQL 8.0.35 ou mais recente, ative os upgrades automáticos de versões secundárias especificando a flag --enable-auto-upgrade-minor-version. Quando você ativa os upgrades automáticos de versão secundária, sua instância é atualizada para a versão secundária padrão do Cloud SQL para MySQL 8.0 durante a atualização de manutenção regular programada. Essa flag não está disponível para o MySQL 8.0.34 e versões anteriores.

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

Para informações detalhadas, consulte a documentação sobre como criar uma instância usando gcloud.

REST v1

Use uma solicitação POST com o método instances:insert e a sinalização databaseVersion.

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Antes de usar qualquer um dos dados da solicitação, substitua estas variáveis:
  • project_id: o ID do projeto
  • instance_id: o nome da instância
  • databaseVersion: a versão do banco de dados da instância: 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 (versão secundária padrão para MySQL 8.0) ou MYSQL_8_0_46. Se você especificar MYSQL_8_0 como a versão, a versão secundária padrão será usada. Se você não especificar a flag databaseVersion, a versão principal padrão, MYSQL_8_0, será usada.

Para informações detalhadas, consulte a documentação sobre como criar uma instância usando a API REST v1.

REST v1beta4

Use uma solicitação POST com o método instances:insert e a sinalização databaseVersion.

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

Antes de usar qualquer um dos dados da solicitação, substitua estas variáveis:

  • project_id: o ID do projeto
  • instance_id: o nome da instância
  • databaseVersion: a versão do banco de dados da instância: 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 (versão secundária padrão para MySQL 8.0) ou MYSQL_8_0_46. Se você especificar MYSQL_8_0, será usada a versão secundária padrão. Se você não especificar a flag databaseVersion, a versão principal padrão, MYSQL_8_0, será usada.

Para informações detalhadas, consulte a documentação sobre como criar uma instância usando a API REST v1beta4.

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

Ao criar uma réplica de leitura, é possível especificar a versão secundária do banco de dados da réplica de leitura. Por padrão, novas réplicas de leitura são criadas na versão secundária padrão.

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

Ao executar uma recuperação pontual, a instância recém-criada tem a mesma versão secundária do banco de dados que a da origem.

Tipos de máquina

Determina os núcleos virtuais e de memória disponíveis para a instância do Cloud SQL. É possível configurar tipos de máquinas de diferentes séries. A disponibilidade de diferentes séries de máquinas é determinada pela edição e região do Cloud SQL.

  • Para instâncias da edição Cloud SQL Enterprise Plus : o Cloud SQL oferece tipos de máquina predefinidos nestas séries:

    • Série N2.
    • Série C4A.
    • Série C4.
  • Para instâncias da edição Enterprise do Cloud SQL : o Cloud SQL oferece tipos de máquina predefinidos e personalizados nestas séries:

Se você precisar de processamento em tempo real, como processamento de transações on-line (OLTP), verifique se a instância tem memória suficiente para conter todo o conjunto de trabalho. No entanto, há outros fatores que podem afetar os requisitos de memória, como o número de conexões ativas e os processos de sobrecarga interna. Realize testes de carga para evitar problemas de desempenho no ambiente de produção.

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

Para mais informações, consulte Escolher uma série de máquinas.

Resolver problemas

Problema Solução de problemas
Mensagem de erro: The zone or region does not have sufficient resources to handle the request at the moment.

A zona selecionada não tem capacidade para os recursos solicitados ou o tipo de VM no momento da solicitação de criação da instância. Pode haver uma alta demanda operacional simultânea nesse local regional específico no momento da solicitação.

Para resolver esse problema, tente criar a instância em outra zona ou tente criar a instância na mesma zona que recebeu o erro em um horário diferente do dia.

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 há mais endereços disponíveis no intervalo de IP alocado. Pode haver vários cenários possíveis:
  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é menor que /24.
  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é muito pequeno para o número de instâncias do Cloud SQL.
  • O requisito sobre o tamanho do intervalo de IP alocado será maior se as instâncias forem criadas em várias regiões. Consulte tamanho do intervalo alocado.

Para resolver esse problema, é possível expandir o intervalo de IP alocado existente ou alocar um intervalo de IP adicional para a conexão de serviço particular. Para mais informações, consulte Alocar um intervalo de endereços IP.

Se você usou a sinalização --allocated-ip-range-name ao criar a instância do Cloud SQL, só vai poder expandir o intervalo de IP especificado.

Se você estiver alocando um novo intervalo, tenha cuidado para que a alocação não se sobreponha a nenhuma alocação atual.

Depois de criar um novo intervalo de IP, atualize o peering VPC com o comando a seguir:

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 você estiver expandindo uma alocação atual, só aumente o intervalo de alocação em vez de diminuí-lo. Por exemplo, se a alocação original for 10.0.10.0/24, faça a nova alocação pelo menos 10.0.10.0/23.

Em geral, se começar com uma alocação de /24, diminuir o /mascaramento em 1 para cada condição (grupo de tipo de instância adicional, região adicional) é uma boa regra geral. Por exemplo, se você tentar criar os dois grupos de tipos de instância na mesma alocação, a mudança de /24 para /23 será suficiente.

Depois de expandir um intervalo de IP atual, use o seguinte comando para atualizar o peering VPC:

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 a instância do Cloud SQL novamente.
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 usando o comando a seguir e tente criar a instância do Cloud SQL novamente.

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 você cria uma instância usando um endereço IP privado, uma conta de serviço é criada no momento certo usando a API Service Networking. Se você ativou recentemente a API Service Networking, a conta de serviço pode não ser criada e a criação da instância falhará. Nesse caso, você precisa esperar a conta de serviço se propagar pelo sistema ou adicioná-la manualmente com as permissões necessárias.
Mensagem de erro: More than 3 subject alternative names are not allowed. Você está tentando usar uma SAN personalizada para adicionar mais de três nomes de DNS ao certificado do servidor de uma instância do Cloud SQL. Não é possível adicionar mais de três nomes DNS à instância.
Mensagem de erro: Subject alternative names %s is too long. The maximum length is 253 characters. Verifique se os nomes DNS que você quer adicionar ao certificado do servidor de uma instância do Cloud SQL não têm mais de 253 caracteres.
Mensagem de erro: Subject alternative name %s is invalid.

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

  • Eles não têm caracteres curinga.
  • Não adicione pontos finais.
  • Eles atendem às especificações da RFC 1034.

A seguir

  1. Crie um banco de dados MySQL na instância.
  2. Crie usuários MySQL na instância.
  3. Proteja e controle o acesso à instância.
  4. Conecte-se à instância com um cliente MySQL.
  5. Importar dados para o banco de dados.
  6. Saiba mais sobre as configurações de instância.