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.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Verifique se você tem os papéis Administrador do Cloud SQL e Leitor do Compute na
sua conta de usuário.
Saiba mais sobre papéis e permissões
Criar uma instância do MySQL
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Clique em Criar instância.
- No painel Escolher o mecanismo do banco de dados na página Criar uma instância, clique em Escolher MySQL.
- 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.
- 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.
Opcional: configure uma política de senha para a instância da seguinte maneira:
- Marque a caixa de seleção Ativar políticas de senha.
- 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.
- Selecione a versão do banco de dados da instância: MySQL 8.4, MySQL 8.0 (padrão), MySQL 5.7 ou MySQL 5.6.
- Opcional: selecione Mostrar versões secundárias. Em seguida, escolha uma versão secundária diferente da versão secundária padrão.
- Selecione a edição do Cloud SQL para sua instância:
Enterprise
ouEnterprise plus
. Para mais informações sobre as edições do Cloud SQL, consulte Introdução às edições do Cloud SQL. - 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 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 eAny (different from primary)
para a zona secundária. - Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
- A zona padrão é
- Na seção Personalizar a instância, atualize as configurações
dela.
Comece clicando 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. 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 Google A 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. Para ativar a conexão com a instância, é necessário ter configurações extras.
Opcionalmente, é possível especificar um intervalo de IP alocado para as suas instâncias usarem em conexões.- Expanda Mostrar opção de intervalo de IP alocado.
- Selecione um intervalo de IP no menu suspenso.
A instância pode ter um endereço IP público e um particular.
- Saiba mais sobre como usar o IP privado.
- Saiba mais sobre como alocar intervalos de endereços IP.
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.
Caminho particular para os serviços do Google Cloud 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 meio de uma conexão particular.
Proteção de dados Backups automáticos A janela de horário em que você quer que os backups comecem. Saiba mais. Escolha onde quer armazenar os backups Selecione "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 armazenar O 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. 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. Marcadores ADICIONAR IDENTIFICADOR Adicione uma chave e um valor para cada rótulo adicionado. Use rótulos para ajudar a organizar suas instâncias. Cache de dados Ativar cache de dados (opcional) Ativa o cache de dados para instâncias do Cloud SQL para MySQL Enterprise Plus. Para mais informações sobre cache de dados, consulte cache de dados. -
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.
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.
A versão do banco de dados não pode ser editada depois que a instância é 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 dele.
- Use o comando
gcloud sql instances create
para criar a instância: - 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).
- 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.
- 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. GOOGLE_MANAGED_INTERNAL_CA
: é o valor padrão. Com essa opção, uma AC interna dedicada a cada instância do Cloud SQL assina o certificado do servidor para essa instância.GOOGLE_MANAGED_CAS_CA
: com essa opção, é usada uma hierarquia de ACs que consiste em uma AC raiz e ACs de servidor subordinados gerenciadas pelo Cloud SQL e hospedadas no serviço de autoridade de certificação (AC Service) do Google Cloud. As ACs de servidor subordinado em uma região assinam os certificados do servidor e são compartilhadas entre as instâncias da região. Essa opção tem suporte apenas no MySQL 8.0.30 e versões mais recentes.- As zonas precisam ser válidas.
- Se a zona secundária for especificada, a primária também precisará ser especificada.
- 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.
- Defina a senha para o usuário MySQL "root@%":
gcloud sql users set-password root \ --host=% \ --instance INSTANCE_NAME \ --password PASSWORD
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
--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:
Por exemplo, a string 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. Elas são visíveis 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:
Você pode 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.
|
Tamanho 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 | ||
IP privado | --network
|
--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 ).
Esse parâmetro só será válido se: |
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 |
|
O parâmetro O parâmetro |
Modo de CA do servidor | --server-ca-mode |
A flag A flag |
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 Configuração da instância
personalizada.
|
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.
Disponível apenas para o comando Beta
(gcloud beta sql instances create ).
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:
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 de horário em 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 recuperação com horários definidos. 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. |
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.
|
Terraform
Para criar uma instância, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud 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.
-
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 demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
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
-
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.
-
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!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
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 confidenciais ou de identificação pessoal
no ID da instância. Elas são visíveis 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_8_4
ouMYSQL_8_0_37
. Se você não especificar uma versão do banco de dados, a versão padrão seráMYSQL_8_0
. - 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 autoridades certificadoras
para a instância,
GOOGLE_MANAGED_INTERNAL_CA
ouGOOGLE_MANAGED_CAS_CA
. Se você não especificarserverCaMode
, a configuração padrão seráGOOGLE_MANAGED_INTERNAL_CA
. Esse recurso está em pré-lançamento.
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 comotrue
.Para remover a política de senha, use uma solicitação
PATCH
comnull
como o valor deenablePasswordPolicy
. 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 comotrue
.
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" } } }
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 confidenciais ou de identificação pessoal
no ID da instância. Elas são visíveis 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_8_4
ouMYSQL_8_0_37
. Se você não especificar uma versão de banco de dados, a versão padrão seráMYSQL_8_0
. - 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 autoridades certificadoras
para a instância,
GOOGLE_MANAGED_INTERNAL_CA
ouGOOGLE_MANAGED_CAS_CA
. Se você não especificarserverCaMode
, a configuração padrão seráGOOGLE_MANAGED_INTERNAL_CA
. Esse recurso está em pré-lançamento.
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 comotrue
.Para remover a política de senha, use uma solicitação
PATCH
comnull
como o valor deenablePasswordPolicy
. 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 comotrue
.
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" } }
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.
Gerar o endpoint de gravação
Se você planeja criar uma instância do Cloud SQL edição Enterprise Plus e quer que o Cloud SQL gere um endpoint de gravação automaticamente para ela, ative a API Cloud DNS no seu projeto do Google Cloud.
Se você já tiver uma instância do Cloud SQL edição Enterprise Plus e quiser que o Cloud SQL gere um endpoint de gravação automaticamente, crie uma réplica ativada para recuperação avançada de desastres.
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 de forma automática. 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 acessar o endpoint de gravação da instância, consulte Acessar informações da instância. Para mais informações sobre como usar o endpoint de gravação para se conectar à instância, consulte Conectar 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 sinalização --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_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versão secundária padrão para MySQL 8.0),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
ouMYSQL_8_0_40
. Se você especificarMYSQL_8_0
, a versão secundária padrão será usada.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
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
- 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_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versão secundária padrão para MySQL 8.0),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
ouMYSQL_8_0_40
. Se você especificarMYSQL_8_0
como a versão, a versão secundária padrão será usada. Se você não especificar a flagdatabaseVersion
, a versão principal padrãoMYSQL_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_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versão secundária padrão para o MySQL 8.0),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
ouMYSQL_8_0_40
. Se você especificarMYSQL_8_0
, será usada a versão secundária padrão. Se você não especificar a flagdatabaseVersion
, a versão principal padrãoMYSQL_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.
Configurações de instâncias personalizadas
Determina os núcleos virtuais e de memória disponíveis para a instância do Cloud SQL. A disponibilidade do tipo de máquina é determinada pela edição do Cloud SQL.
Para cargas de trabalho que exigem processamento em tempo real, como processamento de transações on-line (OLTP, na sigla em inglês), 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 o teste de carga para evitar problemas de desempenho no seu ambiente de produção.
Ao configurar a instância, selecione memória e vCPUs suficientes para processar a carga de trabalho e faça o upgrade à medida que a carga de trabalho aumenta. Uma configuração de máquina com vCPUs insuficientes pode perder a cobertura do SLA. Para mais informações, consulte as diretrizes operacionais.
Tipos de máquina para instâncias da edição Cloud SQL Enterprise Plus
Para instâncias da edição Enterprise Plus do Cloud SQL, os tipos de máquina são predefinidos da seguinte maneira:
Tipo de máquina da edição Enterprise Plus | vCPUs | Memória (GB) | SSD local |
---|---|---|---|
db-perf-optimized-N-2 | 2 | 16 | 375 |
db-perf-optimized-N-4 | 4 | 32 | 375 |
db-perf-optimized-N-8 | 8 | 64 | 375 |
db-perf-optimized-N-16 | 16 | 128 | 750 |
db-perf-optimized-N-32 | 32 | 256 | 1.500 |
db-perf-optimized-N-48 | 48 | 384 | 3000 |
db-perf-optimized-N-64 | 64 | 512 | 6.000 |
db-perf-optimized-N-80 | 80 | 640 | 6.000 |
db-perf-optimized-N-96 | 96 | 768 | 6.000 |
db-perf-optimized-N-128 | 128 | 864 | 9000 |
Tipos de máquina para instâncias da edição Cloud SQL Enterprise
Para instâncias do Cloud SQL Enterprise, também é possível criar configurações de instância personalizadas usando o comando gcloud sql
instances create
.
Com as configurações de instância flexíveis, você seleciona a quantidade de memória e CPUs
necessárias para a instância. Essa flexibilidade permite escolher o
formato de VM apropriado para a carga de trabalho.
Os nomes dos tipos de máquina usam o seguinte formato:
db-custom-#-#
Substitua o primeiro marcador # pelo número de CPUs na máquina e o segundo marcador # pela quantidade de memória na máquina.
Por exemplo, se o nome da máquina for db-custom
e
tiver 1 CPU e 3.840 MB de RAM, o formato será
db-custom-1-3840
.
Ao selecionar o número de CPUs e a quantidade de memória, há algumas restrições à configuração escolhida:
- 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).
A tabela a seguir lista os nomes de cada tipo de máquina legado, o número de CPUs e RAM de cada tipo de máquina e a string resultante para do tipo de máquina.
É possível criar o tipo de máquina equivalente especificando a CPU e
a RAM equivalentes no console do Google Cloud, usando a CLI gcloud ou
especificando db-custom-#-#
na API.
Tipo de máquina legada | vCPUs | Memória (MB) | db-custom-CPU-RAM (string do 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 |
Resolver problemas
Problema | Solução de problemas |
---|---|
Mensagem de erro: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider |
Não há mais endereços disponíveis no intervalo de IP alocado. Pode
haver vários cenários possíveis:
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 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: 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. |
A seguir
- Crie um banco de dados MySQL na instância.
- Crie usuários MySQL na instância.
- Proteja e controle o acesso à instância.
- Conecte-se à instância com um cliente MySQL.
- Importar dados para o banco de dados.