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

Google Cloud SQL to w pełni zarządzana usługa bazy danych, która ułatwia konfigurowanie i obsługę relacyjnych baz danych MySQL w chmurze oraz zarządzanie nimi i administrowanie.

W tym module utworzymy nową, pustą instancję Cloud SQL, połączymy się z nią za pomocą interfejsu wiersza poleceń MySQL i utworzymy nową, pustą bazę danych.

Czego się nauczysz

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

Czego potrzebujesz

Jak zamierzasz korzystać z tego samouczka?

Tylko przeczytaj Przeczytaj i wykonaj ćwiczenia

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

Początkujący Średnio zaawansowany Zaawansowany

Samodzielne konfigurowanie środowiska

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:

Screenshot from 2016-02-10 12:45:26.png

Zapamiętaj identyfikator projektu, czyli unikalną nazwę we wszystkich projektach Google Cloud (podana powyżej nazwa jest już zajęta i nie będzie działać w Twoim przypadku). W dalszej części tego laboratorium będzie on nazywany PROJECT_ID.

Następnie musisz włączyć płatności w konsoli Cloud, aby móc korzystać z zasobów Google Cloud.

Wykonanie tego samouczka nie powinno kosztować więcej niż kilka dolarów, ale może okazać się droższe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz je uruchomione (patrz sekcja „Czyszczenie” na końcu tego dokumentu).

Nowi użytkownicy Google Cloud Platform mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

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

Przewiń w dół i w podsekcji Pamięć wybierz SQL:

Powinien się teraz wyświetlić interfejs internetowy Cloud SQL. Jeśli używasz projektu, który nie ma obecnie żadnych instancji Cloud SQL, zobaczysz okno dialogowe 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 w projekcie nie ma instancji Cloud SQL, kliknij przycisk Utwórz instancję, aby ją utworzyć:

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

W obu przypadkach powinna się teraz wyświetlić strona Wybierz typ instancji. W tym samouczku utworzymy instancję Cloud SQL drugiej generacji. Kliknij Wybierz drugą generację.

2ndGenCloudSQLCreate.png

Otworzy się strona Utwórz instancję. W tym miejscu musisz podać nazwę instancji. Nazwa musi być unikalna w projekcie, ale nie w innych projektach, więc możesz użyć tej samej nazwy instancji codelab-0, która jest pokazana w tym przykładzie, pod warunkiem że w projekcie nie ma innych instancji Cloud SQL. W polu Identyfikator instancji wpisz „codelab-0”. Na potrzeby tego samouczka pozostałe ustawienia konfiguracji mogą mieć wartości domyślne.

Pamiętaj, że po usunięciu instancji Cloud SQL nie możesz ponownie użyć jej nazwy przez maksymalnie tydzień. Jeśli planujesz używać tego projektu do czegoś więcej niż tylko eksperymentów, wybierz nazwę instancji, która różni się od nazwy, której możesz chcieć użyć do prawdziwej pracy. W przeciwnym razie możesz nie być w stanie ponownie użyć tej nazwy instancji przez pewien czas.

2ndGenCloudSQLCreate_2.png

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

2ndGenCloudSQLCreate_3.png

Otworzy się strona Instancje, na której zobaczysz nową instancję z spinnerem po lewej stronie, co oznacza, że jest ona nadal tworzona:

Po 2–3 minutach instancja będzie dostępna, a niebieski spinner zostanie zastąpiony zielonym znacznikiem wyboru. Od czasu do czasu odświeżaj stronę:

Możesz już używać instancji Cloud SQL.

Kliknij nazwę instancji, aby wyświetlić stronę z informacjami o niej, a potem kliknij Kontrola dostępu:

Na karcie Kontrola dostępu kliknij Użytkownicy:

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

Na stronie Zmień hasło wpisz nowe hasło i kliknij OK:

Aktywuj Cloud Shell, klikając przycisk w konsoli Google Cloud:

Jeśli używasz Google Cloud Shell w tym projekcie po raz pierwszy, zobaczysz ekran Google Cloud Shell. Kliknij Uruchom Cloud Shell.

cloudShellWelcome.png

Nowa aplikacja Cloud Shell pojawi się u dołu konsoli Google Cloud. Jeśli używasz jej po raz pierwszy w tym projekcie, musisz najpierw kliknąć Uruchom Cloud Shell na ekranie Google Cloud Shell. Jeśli używasz jej już wcześniej, pojawi się od razu po kliknięciu przycisku Aktywuj Google Cloud Shell.

Screen Shot 2016-03-07 at 12.18.01.png

Połącz się z instancją Cloud SQL za pomocą polecenia gcloud sql pokazanego poniżej, ale zastąp „codelab-0” nazwą swojej 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> 

Jak widać na ilustracji, pojawi się prośba o wpisanie hasła ustawionego w poprzednim kroku. Teraz masz w pełni funkcjonalny wiersz poleceń MySQL, w którym jesteś zalogowany(a) jako „root”. Możesz w nim wpisywać instrukcje SQL, np. tę, która tworzy nową bazę danych o nazwie „codelab”:

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

Jeśli zapytanie zwróci odpowiedź OK, instancja działa. Wyjdźmy i wczytajmy przykładowe dane, aby uruchomić prawdziwe zapytania.

Wpisz „exit;” i naciśnij Enter, aby zamknąć wiersz polecenia MySQL.

Załadujemy przykładowy zbiór danych o pracownikach, 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

Następnie musimy utworzyć bazę danych i tabele oraz wczytać dane. Ponownie zastąp codelab-0 nazwą instancji, jeśli jest inna:

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

Teraz możemy wysyłać zapytania do danych. Poniżej znajdziesz kilka przykładowych zapytań. Możesz też samodzielnie tworzyć zapytania. Aby zapoznać się ze schematem bazy danych, otwórz plik employees.sql. Najpierw zaloguj się w wierszu poleceń SQL i przełącz się na bazę danych pracowników. Ponownie zastąp codelab-0 nazwą 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 wykonywania zapytań dotyczących przykładowego zbioru danych o pracownikach 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 teraz usuwać. Jednak projekt, którego używasz, będzie nadal obciążany opłatami za instancję. Jeśli nie potrzebujesz już tej instancji, usuń ją, aby uniknąć tych opłat.

Pamiętaj, że po usunięciu instancji Cloud SQL nie możesz ponownie użyć jej nazwy przez maksymalnie tydzień.

Instancję Cloud SQL możesz usunąć na 2 sposoby.

1) Użyj gcloud w środowisku Cloud Shell. Ponownie zastąp codelab-0 nazwą 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 kliknij „Usuń”:

Usunięcie instancji jest nieodwracalne. Danych z tej instancji nie będzie można odzyskać. Aby zapobiec przypadkowemu usunięciu niewłaściwej instancji, musisz potwierdzić usunięcie, wpisując nazwę instancji w oknie dialogowym potwierdzenia:

Wpisz nazwę instancji i kliknij Usuń.

Utworzono nową instancję Cloud SQL, skonfigurowano hasło roota, utworzono pustą bazę danych i (opcjonalnie) usunięto instancję Cloud SQL.

Omówione zagadnienia

  • Tworzenie instancji Cloud SQL za pomocą konsoli Google Cloud.
  • Ustawianie hasła roota SQL w konsoli Google Cloud.
  • Łączenie z bazą danych za pomocą klienta mysql.
  • Tworzenie nowej bazy danych MySQL za pomocą wiersza poleceń mysql.
  • Usuwanie instancji Cloud SQL.

Więcej informacji