Como criar instâncias

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

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

Durante a criação da instância, um único banco de dados é adicionado a ela. É possível adicionar mais bancos de dados ao criar ou importar mais opções.

Antes de começar

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Instale e inicialize o SDK do Cloud..
  5. Verifique se você tem os papéis Administrador do Cloud SQL e Leitor do Compute na sua conta de usuário.

    Acessar a página IAM

    Saiba mais sobre papéis e permissões

Como criar uma instância do MySQL

Para criar uma instância do MySQL:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique em Criar instância.
  3. Selecione MySQL e clique em Avançar.
  4. Insira um nome.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Ele é visível externamente.

    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.

  5. Digite a senha do usuário 'root'@'%'.
  6. Em Local, selecione a região e a zona 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, você não precisa especificar uma zona.

  7. Em Opções de configuração, atualize as configurações da instância:
    Configuração Observações
    Versão do banco de dados A versão do banco de dados não pode ser editada depois que a instância é criada.
    Versão do banco de dados Console: MySQL 8.0, MySQL 5.7 (padrão) ou MySQL 5.6.
    API: MYSQL_8_0, MYSQL_5_7 (padrão) ou MYSQL_5_6
    Conectividade
    IP particular Adiciona um endereço IP particular à instância. Para ativar a conexão com a instância, é necessário ter configurações extras. .
    IP público Adiciona um endereço IP público à instância. Para ativar a conexão com a instância, é necessário fazer configurações adicionais.
    Tipo de máquina e armazenamento
    Tipo de máquina O tipo de máquina, algumas vezes chamado também de "nível", determina o número de CPUs e a quantidade de memória da instância. Saiba mais.
    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.
    Aumento automático de armazenamento Determina se o Cloud SQL fornece automaticamente mais armazenamento para a instância quando há pouco espaço livre. Saiba mais.
    Alta disponibilidade Marque a caixa de seleção Alta disponibilidade (regional) se precisar que a instância seja configurada para alta disponibilidade. Saiba mais.
    Backups automáticos A janela de tempo que você quer que os backups comecem. Saiba mais.
    Geração de registros binários A geração de registros binários permite a replicação e recuperação com horários definidos. Saiba mais.
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados É possível usar sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais.
    Cronograma de manutenção
    Janela de manutenção 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 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.

    Saiba mais sobre configurações de instância.

  8. Clique em Criar.

gcloud

Para ver informações sobre como instalar e dar os primeiros passos com a ferramenta de linha de comando gcloud, consulte Como instalar o SDK do Cloud. Para mais informações sobre como iniciar o Cloud Shell, consulte a documentação dele.

  1. Exiba a lista de tipos de máquina em potencial:
    gcloud sql tiers list
    

    Observe os valores que começam com db-. Escolha um desses valores para criar uma instância da Segunda geração.

    Para informações sobre os diferentes tipos de máquina, os respectivos recursos e o efeito que eles têm sobre preços da instância, consulte a página Preços.

  2. Crie a instância:
    gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
    

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Ele é visível externamente.
    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.

    MACHINE_TYPE é um dos valores da etapa anterior que começa com db-.

    Por exemplo, o comando a seguir cria uma instância da Segunda geração chamada instance1 com o tipo de máquina db-n1-standard-2 na região de Londres:

    gcloud sql instances create instance1 --tier=db-n1-standard-2 --region=europe-west2
    

    Adicione 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 MYSQL_8_0, MYSQL_5_7 (padrão) ou MYSQL_5_6.
    Região --region Consulte os valores válidos.
    Conectividade
    IP particular --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). Saiba mais.
    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.
    Tipo de máquina e armazenamento
    Tipo de máquina --tier O tipo de máquina determina o número de CPUs e a quantidade de memória que a instância tem. Veja os valores padrão. Também é possível criar tipos de máquina personalizados. Saiba mais.
    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 a 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. Disponível apenas para o comando Beta (gcloud beta sql instances create). Saiba mais.
    Backups automáticos e alta disponibilidade
    Alta disponibilidade --availability-type Para uma instância altamente disponível, defina como REGIONAL. Saiba mais.
    Backups automáticos --backup-start-time A janela de tempo que você quer que os backups comecem. Saiba mais.
    Geração de registros binários --enable-bin-log A geração de registros binários permite a replicação e recuperação com horários definidos. Saiba mais.
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados --database-flags É possível 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.

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

    Se não estiver usando o Cloud SQL Proxy, 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
    

REST v1beta4

Crie a instância

Este exemplo cria uma instância com backups e geração de registros binários ativados. Essas configurações são opcionais. Para ver uma lista completa de parâmetros dessa chamada, consulte a página Instances:insert. Para informações sobre configurações de instância, inclusive valores válidos para a região e o tipo de máquina, consulte Configurações de instância.

Não inclua informações confidenciais ou de identificação pessoal no ID da instância. Elas são visíveis externamente.
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.

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

  • project-id: o ID do projeto
  • instance-id: o ID da instância escolhida
  • database-version: string de enum da versão do banco de dados. Exemplo: MYSQL_5_7
  • region: a região escolhida
  • machine-type: o tipo de máquina escolhido

Método HTTP e URL:

POST https://www.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",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    }
  }
}

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

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#operation",
  "targetLink": "https://www.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://www.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.

Atualizar 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: o 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://www.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://www.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://www.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: o ID do projeto
  • instance-id: o ID da instância criado na etapa anterior

Método HTTP e URL:

GET https://www.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_5_7",
  "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://www.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 de API REST de base é criada nesta tarefa, consulte a página APIs Explorer em "instances:insert".

Exemplos de tipos de máquinas

Com tipos de máquina personalizados, você pode configurar sua instância com a quantidade de memória e CPUs que precisa. No entanto, existem algumas restrições de valores:

  • 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 (3.840 MB).

Veja a seguir alguns exemplos de valores de tipo de máquina baseados nos tipos de máquina predefinidos disponíveis para instâncias do MySQL:

Tipo de máquina predefinido vCPUs Memória (MB) String de nível da API
db-n1-standard-1 1 3.840 db-custom-1-3840
db-n1-standard-2 2 7.680 db-custom-2-7680
db-n1-standard-4 4 15.360 db-custom-4-15360
db-n1-standard-8 8 30.720 db-custom-8-30720
db-n1-standard-16 16 61.440 db-custom-16-61440
db-n1-standard-32 32 122.880 db-custom-32-122880
db-n1-standard-64 64 245.760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13.312 db-custom-2-13312
db-n1-highmem-4 4 26.624 db-custom-4-26624
db-n1-highmem-8 8 53.248 db-custom-8-53248
db-n1-highmem-16 16 106.496 db-custom-16-106496
db-n1-highmem-32 32 212.992 db-custom-32-212992
db-n1-highmem-64 64 425.984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Solução de problemas

Clique nos links da tabela para ver detalhes:

Para este problema... O problema pode ser... Tente o seguinte...
Internal error. Não há conta de serviço da rede de serviço. Desative e reative o Service Networking API.
Falha na criação da instância do Terraform. Erro de configuração do Terraform. Inspecione e repare o arquivo de configuração do Terraform.
HTTP Error 409 no script do Terraform. Outra operação já está em andamento. Corrija o script do Terraform para aguardar a conclusão de cada operação.
Unknown error Tentativa de criar uma instância com o mesmo nome de uma excluída recentemente. Ou tentativa de criar várias instâncias simultaneamente com o uso de um novo intervalo de IPs privados. Use um nome diferente para a instância ou aguarde uma semana desde que a instância foi excluída. Recrie instâncias com falha consecutivamente usando nomes diferentes.

Erro interno

Você vê a mensagem de erro {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null}.

O problema pode ser

O projeto de serviço provavelmente não tem a conta de serviço da rede de serviço necessária para esse recurso.

O que você pode tentar

Para corrigir as permissões do serviço, desative o Service Networking API, aguarde cinco minutos e reative-o.


Falha na criação da instância do Terraform

Falha na criação da instância do Terraform.

O problema pode ser

Isso geralmente é um problema no próprio script do Terraform.

O que você pode tentar

Inspecione e repare o arquivo de configuração do Terraform.


Erro 409 no script do Terraform

Você verá a mensagem de erro HTTP Error 409 nos scripts do Terraform.

O problema pode ser

Operation failed because another operation was already in progress

O que você pode tentar

Revise o script para interromper a execução até que cada operação da instância seja concluída. Antes de continuar para a próxima etapa, faça uma pesquisa com o script e aguarde até que um 200 seja retornado para o ID da operação anterior.


Erro desconhecido

Ao tentar criar uma instância, você vê uma mensagem de erro como Cloud SQL creation failed, error UNKNOWN.

O problema pode ser

É provável que você esteja tentando reutilizar o nome de uma instância excluída recentemente. Os nomes das instâncias não podem ser reutilizados por uma semana após a exclusão. Ou você está tentando criar várias instâncias simultaneamente usando um novo intervalo de IPs privados quando apenas a primeira instância é criada e as outras falham com Unknown error.

O que você pode tentar

Use um nome diferente para a instância ou aguarde uma semana para criar uma nova com esse nome. Crie várias instâncias consecutivamente em vez de simultaneamente.

A seguir