Criar um banco de dados MySQL gerenciado com o Cloud SQL

O Google Cloud SQL é um serviço de banco de dados totalmente gerenciado que facilita a configuração, a manutenção, o gerenciamento e a administração dos seus bancos de dados relacionais do MySQL na nuvem.

Neste laboratório, criaremos uma nova instância vazia do Cloud SQL e a conectaremos usando a interface de linha de comando do MySQL. Depois, criaremos um banco de dados novo e vazio.

O que você vai aprender

  • Como acessar a IU da Web do Cloud SQL no Console do Google Cloud.
  • Como criar uma instância do Cloud SQL usando o Console do Google Cloud.
  • Como definir uma senha raiz usando o Console do Google Cloud.
  • Como se conectar à instância do Cloud SQL pelo Cloud Shell.
  • Como excluir sua instância do Cloud SQL usando o Console do Google Cloud.

Pré-requisitos

Como você usará este tutorial?

Apenas leitura Leitura e exercícios

Como você classificaria sua experiência com o uso dos serviços do Google Cloud Platform e do Firebase?

Iniciante Intermediário Proficiente

Configuração de ambiente personalizada

Se você ainda não tem uma Conta do Google (Gmail ou Google Apps), crie uma. Faça login no Console do Google Cloud Platform (console.cloud.google.com) e crie um novo projeto:

Captura de tela de 10/02/2016 12:45:26.png

Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.

Em seguida, você precisará ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.

A execução por meio deste codelab terá um custo baixo, mas poderá ser mais se você decidir usar mais recursos ou se deixá-los em execução. Consulte a seção "limpeza" no final deste documento.

Novos usuários do Google Cloud Platform estão qualificados para um teste sem custo financeiro de US$300.

No Console do Google Cloud, clique no ícone Menu no canto superior esquerdo da tela:

Role para baixo e selecione SQL na subseção Armazenamento:

Agora você verá a IU da Web do Cloud SQL. Se estiver usando um projeto que não tem instâncias do Cloud SQL, uma caixa de diálogo será exibida, com um convite para você criar uma nova instância do Cloud SQL.

Se você estiver usando um projeto que já tem uma ou mais instâncias do Cloud SQL, verá uma lista dessas instâncias:

Se o projeto não tiver instâncias do Cloud SQL, pressione o botão Criar instância para criar uma:

Se você estiver usando um projeto que já tem uma ou mais instâncias do Cloud SQL, pressione o botão Criar instância na tela Instâncias, conforme mostrado aqui:

Em ambos os casos, você verá a página Escolha um tipo de instância. Neste codelab, criaremos uma instância do Cloud SQL de segunda geração. Clique em Escolher a Segunda geração.

2ndGenCloudSQLCreate.png

Você acessará a página Criar uma instância. Aqui você precisa especificar um nome para sua instância. Esse nome precisa ser exclusivo no projeto, mas não entre projetos. Portanto, use o mesmo nome de instância codelab-0 mostrado no exemplo, supondo que você não tenha outras instâncias do Cloud SQL no projeto. Digite "codelab-0" na caixa "ID da instância". Para os fins deste codelab, o restante da configuração pode ser mantido com os valores padrão.

Não é possível reutilizar um nome de instância do Cloud SQL por até uma semana. Se você pretende usar o projeto em outra situação, escolha um nome de instância diferente do que você queira usar para trabalhos reais. Caso contrário, talvez não consiga reutilizar o nome da instância por um período.

2ndGenCloudSQLCreate_2.png

Role até a parte inferior da página e pressione Criar.

2ndGenCloudSQLCreate_3.png

Você será direcionado para a página Instâncias, onde verá a nova instância com um ícone à esquerda, indicando que ela ainda está sendo criada:

Em dois ou três minutos, a instância estará disponível, e uma marca de seleção verde substituirá o ícone azul. Atualize a página periodicamente:

Sua instância do Cloud SQL está pronta para uso.

Clique no nome da instância para abrir a página de detalhes e depois em Controle de acesso:

Na guia "Access Control", pressione Users:

Na guia "Usuários", clique em Alterar senha raiz:

Digite a nova senha na página "Alterar senha" e pressione OK:

Ative o Google Cloud Shell pressionando o botão de prompt no Console do Google Cloud:

Se esta for a primeira vez que você usa o Google Cloud Shell para este projeto, verá a tela do Google Cloud Shell. Pressione Iniciar o Cloud Shell

cloudShellWelcome.png

O novo Cloud Shell será exibido na parte inferior do Console do Google Cloud depois que você pressionar Iniciar Cloud Shell na tela do Google Cloud Shell se for a primeira vez que ele foi usado com esse projeto, ou imediatamente depois de pressionar o botão "Ativar Google Cloud Shell", que já foi usado.

Screen Shot 2016-03-07 at 12.18.01.png

Conecte-se à instância do Cloud SQL com o comando gcloud sql mostrado abaixo, mas substitua "codelab-0" pelo nome da instância, se for diferente:

gcloud sql connect codelab-0 --user=root

Você verá:

$ gcloud sql connect codelab-0 --user=root
Whitelisting your IP for incoming connection for 1 minute...done.
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11302
Server version: 5.6.29-google-log (Google)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Como mostrado aqui, será solicitado que você digite a senha definida na etapa anterior. Agora você tem um prompt do MySQL totalmente funcional, conectado como "quoquo;root". Você pode usar isso para inserir instruções SQL, como esta, para criar um novo banco de dados chamado "codelab":

mysql> CREATE DATABASE codelab;
Query OK, 1 row affected (0.00 sec)

Se a consulta voltar com uma OK, a instância funcionará. Vamos sair e carregar alguns dados de amostra para executar algumas consultas reais.

Digite "exit;' e pressione Enter para sair da solicitação mysql.

Nós carregaremos o conjunto de dados de amostra do funcionário encontrado na documentação oficial do MySQL.

Primeiro, faça o download dos scripts e dados:

$ wget https://codeload.github.com/datacharmer/test_db/zip/master -O sampledb.zip
$ unzip sampledb.zip && cd test_db-master

Depois, precisamos criar o banco de dados e as tabelas e carregar os dados. Novamente, substitua codelab-0 pelo nome da sua instância, se for diferente:

$ gcloud sql connect codelab-0 --user=root < employees.sql

Agora podemos consultar os dados. Veja alguns exemplos de consultas abaixo. Também é possível criar algumas consultas. Para se familiarizar com o esquema do banco de dados, analise o arquivo employees.sql. Primeiro, faça login no prompt do SQL e alterne para o banco de dados do funcionário. Mais uma vez, substitua codelab-0 pelo nome da sua instância, se for diferente:

$ gcloud sql connect codelab-0 --user=root
mysql> USE employees;
Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT avg(s.salary) avg_salary_by_hire_year, YEAR(e.hire_date) FROM employees e, salaries s WHERE e.emp_no = s.emp_no GROUP BY YEAR(e.hire_date);
+-------------------------+-------------------+
| avg_salary_by_hire_year | YEAR(e.hire_date)|
+-------------------------+-------------------+
|              66966.7550 |              1985 |
|              66187.3453 |              1986 |
...
16 rows in set (2.70 sec)

mysql> SELECT de.dept_no, sum(s.salary) sum_salaries_per_department FROM employees e, salaries s, dept_emp de WHERE e.emp_no = de.emp_no AND e.emp_no = s.emp_no GROUP BY de.dept_no;
+---------+-----------------------------+
| dept_no | sum_salaries_per_department|
+---------+-----------------------------+
| d001    |                 13725425266 |
| d002    |                 11650834677 |
...
+---------+-----------------------------+
9 rows in set (4.22 sec)

mysql> exit;

Depois de consultar o conjunto de dados de funcionários de amostra, use o comando "exit' para sair do prompt do mysql.

Esta etapa é opcional. Se você quiser continuar fazendo testes com sua instância do Cloud SQL, não é necessário excluí-la no momento. No entanto, o projeto que você está usando continuará a ser cobrado pela instância. Se você não precisa mais dessa instância, exclua-a agora para evitar essas cobranças.

Não é possível reutilizar um nome de instância do Cloud SQL por até uma semana.

Há duas opções para excluir a instância do Cloud SQL.

1) Use gcloud no ambiente do Cloud Shell. Novamente, substitua codelab-0 pelo nome da sua instância, se for diferente:

$ gcloud sql instances delete codelab-0
All of the instance data will be lost when the instance is deleted.

Do you want to continue (Y/n)?  Y

Deleting Cloud SQL instance...done.
Deleted
$

,

2) Para retornar à página de instâncias do Cloud SQL, clique em SQL no canto superior esquerdo:

Abra o menu suspenso ao lado da instância que você quer excluir e selecione "Excluir":

A exclusão de uma instância é permanente. Não é possível recuperar os dados da instância. Para ajudar a evitar a exclusão acidental, é necessário confirmar a exclusão digitando o nome da instância em uma caixa de diálogo de confirmação:

Digite o nome da instância e pressione Delete.

Você criou uma instância do Cloud SQL, configurou uma senha raiz, criou um banco de dados vazio e (opcionalmente) excluiu a instância do Cloud SQL.

O que vimos

  • criar instâncias do Cloud SQL usando o Console do Google Cloud;
  • Definir uma senha raiz SQL no Console do Google Cloud
  • Como se conectar ao banco de dados usando o cliente mysql.
  • Criar um novo banco de dados MySQL por meio da solicitação mysql.
  • Como excluir a instância do Cloud SQL.

Saiba mais