Tworzenie zarządzanej bazy danych MySQL za pomocą Cloud SQL

Google Cloud SQL to w pełni zarządzana usługa bazy danych ułatwiająca konfigurację i obsługę relacyjnych baz danych MySQL oraz zarządzanie nimi w chmurze.

Z tego modułu dowiesz się, jak utworzyć nową, pustą instancję Cloud SQL, połączyć się z nią za pomocą interfejsu wiersza poleceń MySQL oraz utworzyć nową, pustą bazę danych.

Czego się nauczysz

  • Jak uzyskać dostęp do interfejsu internetowego Cloud SQL w Google Cloud Console.
  • Jak utworzyć instancję Cloud SQL za pomocą Google Cloud Console.
  • Jak ustawić hasło roota w Google Cloud Console.
  • Jak połączyć się z instancją Cloud SQL przez Cloud Shell.
  • Jak usunąć instancję Cloud SQL za pomocą Google Cloud Console.

Czego potrzebujesz

Jak będziesz korzystać z tego samouczka?

Przeczytaj tylko Przeczytaj i wykonaj ćwiczenia

Jak oceniasz korzystanie z usług Google Cloud Platform i Firebase?

Początkujący Średnio zaawansowany Zaawansowany

Konfiguracja środowiska we własnym tempie

Jeśli nie masz jeszcze konta Google (Gmail lub Google Apps), musisz je utworzyć. Zaloguj się w konsoli Google Cloud Platform (console.cloud.google.com) i utwórz nowy projekt:

Zrzut ekranu z 10 września 2016 r., 12:45:26.png

Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa została już użyta i nie będzie działać). W ćwiczeniach nazywamy je później PROJECT_ID.

Aby móc używać zasobów Google Cloud, musisz najpierw włączyć płatności w Cloud Console.

Ćwiczenia z programowania nie powinny kosztować więcej niż kilka dolarów, ale mogą być większe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz to uruchomione (zobacz sekcję „Czyszczenie” na końcu tego dokumentu).

Nowi użytkownicy Google Cloud Platform mogą skorzystać z bezpłatnej wersji próbnej o wartości 300 USD.

W Google Cloud Console kliknij ikonę Menu w lewym górnym rogu ekranu:

Przewiń w dół i wybierz SQL w podsekcji Storage:

Zobaczysz interfejs internetowy Cloud SQL. Jeśli używasz projektu, który obecnie nie ma żadnych instancji Cloud SQL, zobaczysz okno z prośbą o utworzenie nowej instancji Cloud SQL.

Jeśli używasz projektu, który ma już co najmniej jedną instancję Cloud SQL, zobaczysz listę tych instancji:

Jeśli Twój projekt nie zawiera instancji Cloud SQL, naciśnij przycisk Utwórz instancję, aby utworzyć instancję:

Jeśli korzystasz z projektu, który ma już co najmniej jedną instancję Cloud SQL, naciśnij przycisk Utwórz instancję na ekranie Instancje, jak pokazano tutaj:

W obu przypadkach powinna być widoczna strona Wybierz typ instancji. W ramach tego ćwiczenia utworzymy instancję Cloud SQL drugiej generacji. Kliknij Wybierz drugą generację.

2ndGenCloudSQLCreate.png

Otworzy się strona Tworzenie instancji. Musisz tutaj podać nazwę instancji. Ta nazwa musi być unikalna w projekcie, ale nie w różnych projektach, więc możesz użyć tej samej nazwy instancji codelab-0 pokazanej w tym przykładzie, zakładając, że w projekcie nie ma innych instancji Cloud SQL. W polu Identyfikator instancji wpisz "codelab-0&quot. Na potrzeby tego ćwiczenia z pozostałej konfiguracji możesz zostawić wartości domyślne.

Pamiętaj, że gdy usuniesz instancję Cloud SQL, nie możesz użyć jej nazwy przez maksymalnie tydzień. Jeśli zamierzasz używać tego projektu na potrzeby większego zakresu niż eksperymentowanie, wybierz inną nazwę instancji niż ta, której chcesz używać w pracy. W przeciwnym razie może się okazać, że nie możesz używać tej nazwy przez określony czas.

2ndGenCloudSQLCreate_2.png

Przewiń stronę w dół i kliknij Utwórz.

2ndGenSQLSQLCreate_3.png

Otworzy się strona Instancje, na której po lewej stronie zobaczysz nową instancję ze wskaźnikiem postępu, który oznacza, że wciąż trwa jej tworzenie:

Za 2–3 minuty instancja będzie dostępna, a niebieski wskaźnik postępu zastąpi zielony wskaźnik. Od czasu do czasu odświeżaj stronę:

Twoja instancja Cloud SQL jest gotowa do użycia.

Kliknij nazwę instancji, aby otworzyć stronę z jej szczegółami, a następnie kliknij Kontrola dostępu:

Na karcie Kontrola dostępu naciśnij Użytkownicy:

Na karcie Użytkownicy kliknij Zmień hasło roota:

Wpisz nowe hasło na stronie Zmień hasło i naciśnij OK:

Aktywuj Google Cloud Shell, naciskając przycisk potwierdzenia w Google Cloud Console:

Jeśli po raz pierwszy używasz Google Cloud Shell w tym projekcie, zobaczysz ekran Google Cloud Shell. Naciśnij Start Cloud Shell.

cloudShellWitamy.png

Nowa usługa Cloud Shell zostanie wyświetlona u dołu Google Cloud Console po pierwszym kliknięciu Start Cloud Shell na ekranie Google Cloud Shell, jeśli była ona używana w tym projekcie po raz pierwszy, albo bezpośrednio po naciśnięciu przycisku Aktywuj Google Cloud Shell, jeśli był używany wcześniej.

Zrzut ekranu 2016-03-07 o 12.18.01.png

Połącz się z instancją Cloud SQL, korzystając z poniższego polecenia gcloud sql, i zastąp ciąg "codelab-0" nazwą instancji, jeśli jest inna:

gcloud sql connect codelab-0 --user=root

Zobaczysz, że:

$ 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> 

Poprosimy Cię o wpisanie hasła ustawionego w poprzednim kroku. Masz teraz w pełni funkcjonalne powiadomienie MySQL po zalogowaniu się jako "root". Możesz go użyć do wpisania instrukcji SQL, takich jak ta, aby utworzyć nową bazę danych o nazwie "codelab":

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

Jeśli zapytanie zwróci kod OK, instancja działa. Wyjście i wczytanie przykładowych danych w celu uruchomienia konkretnych zapytań.

Wpisz polecenie „exit;' i naciśnij Enter, aby zamknąć wiersz poleceń mysql.

Wczytamy przykładowy zbiór danych dla pracowników, który znajdziesz w oficjalnej dokumentacji MySQL.

Najpierw musimy pobrać skrypty i dane:

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

Po drugie, musimy utworzyć bazę danych i tabele oraz wczytać dane. Zastąp codelab-0 nazwą swojej instancji, jeśli jest inna:

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

Teraz możemy tworzyć zapytania dotyczące danych. Poniżej podajemy kilka przykładowych zapytań. Niektóre zapytania możesz też utworzyć samodzielnie. Aby zapoznać się ze schematem bazy danych, przejrzyj plik employees.sql. Najpierw zaloguj się w wierszu poleceń SQL i przełącz się na bazę danych pracownika. Zamień codelab-0 na nazwę swojej instancji (jeśli jest inna):

$ 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;

Po zakończeniu zapytania do przykładowego zbioru danych dotyczących pracowników użyj polecenia „exit', aby zamknąć wiersz poleceń mysql.

Ten krok jest opcjonalny. Jeśli chcesz nadal eksperymentować z instancją Cloud SQL, nie musisz jej usuwać. Jednak opłaty za projekt będą nadal naliczane w przypadku projektu, którego używasz. Jeśli nie potrzebujesz innych instancji, usuń je teraz, aby uniknąć tych opłat.

Pamiętaj, że gdy usuniesz instancję Cloud SQL, nie możesz użyć jej nazwy przez maksymalnie tydzień.

Masz 2 możliwości usunięcia swojej instancji Cloud SQL.

1) Użyj środowiska gcloud w środowisku Cloud Shell. Zastąp codelab-0 nazwą swojej instancji, jeśli jest inna:

$ 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
$

lub

2) Wróć na stronę instancji Cloud SQL, klikając SQL w lewym górnym rogu:

Otwórz menu obok instancji, którą chcesz usunąć, i wybierz „Usuń”:

Usunięcie instancji jest nieodwracalne. Nie można odzyskać danych z tej instancji. Aby zapobiec przypadkowemu usunięciu nieprawidłowej instancji, musisz potwierdzić usunięcie, wpisując jej nazwę w oknie potwierdzenia:

Wpisz nazwę instancji i naciśnij Usuń.

Udało Ci się utworzyć nową instancję Cloud SQL, skonfigurować hasło roota, pustą bazę danych oraz (opcjonalnie) usunąć instancję Cloud SQL.

Omawiane zagadnienia

  • Tworzenie instancji Cloud SQL za pomocą Google Cloud Console.
  • Ustaw hasło roota SQL w Google Cloud Console.
  • Łączenie z bazą danych za pomocą klienta mysql.
  • Tworzenie nowej bazy danych MySQL za pomocą wiersza poleceń mysql.
  • Usuwam instancję Cloud SQL.

Więcej informacji