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.

Depois de criar uma instância do Cloud SQL, adicione bancos de dados a ela, criando ou importando.

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 Cloud, na página do seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o seu 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 do Cloud 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 apropriado, como nos arquivos de registros, por exemplo.

    Observação: não é possível reutilizar um nome de instância por até uma semana depois de excluí-la.

  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
    Versão do banco de dados MySQL 5.6 ou 5.7 (padrão).
    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 ter configurações extras.
    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.
    Autorizar redes
    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 apropriado, como nos arquivos de registros, por exemplo.

    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_5_6 ou MYSQL_5_7 (padrão).
    Região --region Consulte os valores válidos.
    Conectividade
    IP privado --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

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 apropriado, como nos arquivos de registros, por exemplo.

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
  • 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",
  "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 à seguinte:

{
  "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 à seguinte:

{
  "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 particulares. 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ê deve 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ê deve 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ê deve 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 particulares quando apenas a primeira instância é criada e as outras falham com Unknown error.

O que 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