Создайте управляемую базу данных MySQL с помощью Cloud SQL

Google Cloud SQL — это полностью управляемая служба баз данных, которая упрощает настройку, обслуживание, управление и администрирование реляционных баз данных MySQL в облаке.

В этой лабораторной работе мы создадим новый пустой экземпляр Cloud SQL, подключимся к нему с помощью интерфейса командной строки MySQL и создадим новую пустую базу данных.

Чему вы научитесь

  • Как получить доступ к веб-интерфейсу Cloud SQL в Google Cloud Console.
  • Как создать экземпляр Cloud SQL с помощью Google Cloud Console.
  • Как установить пароль root с помощью Google Cloud Console.
  • Как подключиться к вашему экземпляру Cloud SQL через Cloud Shell.
  • Как удалить экземпляр Cloud SQL с помощью Google Cloud Console.

Что вам понадобится

Как вы будете использовать это руководство?

Прочитайте это только до конца Прочитайте и выполните упражнения.

Как бы вы оценили свой опыт использования сервисов Google Cloud Platform и Firebase?

Новичок Средний Опытный

Настройка среды для самостоятельного обучения

Если у вас ещё нет учётной записи Google (Gmail или Google Apps), необходимо её создать . Войдите в консоль Google Cloud Platform ( console.cloud.google.com ) и создайте новый проект:

Скриншот от 2016-02-10 12:45:26.png

Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не будет вам работать, извините!). Далее в этой практической работе он будет обозначаться как PROJECT_ID .

Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.

Выполнение этой лабораторной работы не должно обойтись вам дороже нескольких долларов, но может обойтись дороже, если вы решите использовать больше ресурсов или оставите их запущенными (см. раздел «Очистка» в конце этого документа).

Новые пользователи Google Cloud Platform имеют право на бесплатную пробную версию стоимостью 300 долларов США .

В консоли Google Cloud нажмите значок меню в левом верхнем углу экрана:

Прокрутите вниз и выберите SQL в подразделе Хранилище :

Теперь вы должны увидеть веб-интерфейс Cloud SQL, и если вы используете проект, в котором в данный момент нет экземпляров Cloud SQL, вы увидите диалоговое окно с приглашением создать новый экземпляр Cloud SQL.

Если вы используете проект, в котором уже есть один или несколько экземпляров Cloud SQL, вместо этого вы увидите список этих экземпляров:

Если в вашем проекте нет экземпляров Cloud SQL, нажмите кнопку «Создать экземпляр» , чтобы создать его:

Если вы используете проект, в котором уже есть один или несколько экземпляров Cloud SQL, нажмите кнопку «Создать экземпляр» на экране «Экземпляры» , как показано здесь:

В любом случае вы должны увидеть страницу «Выбрать тип экземпляра» . В этой лабораторной работе мы создадим экземпляр Cloud SQL второго поколения. Нажмите «Выбрать второе поколение» .

2ndGenCloudSQLCreate.png

Откроется страница «Создание экземпляра» . Здесь необходимо указать имя экземпляра. Это имя должно быть уникальным в пределах вашего проекта, но не между проектами, поэтому вы можете использовать то же имя экземпляра codelab-0, что и в этом примере, при условии, что в вашем проекте нет других экземпляров Cloud SQL. Введите «codelab-0» в поле «Идентификатор экземпляра». Для целей этой практической работы остальную конфигурацию можно оставить со значениями по умолчанию.

Обратите внимание, что после удаления экземпляра Cloud SQL вы не сможете повторно использовать его имя в течение недели. Если вы планируете использовать этот проект не только для экспериментов, обязательно выберите имя экземпляра, отличное от имени экземпляра, которое вы планируете использовать в реальной работе, иначе вы можете столкнуться с невозможностью использовать это имя экземпляра в течение некоторого времени.

2ndGenCloudSQLCreate_2.png

Прокрутите страницу вниз и нажмите «Создать» .

2ndGenCloudSQLCreate_3.png

Вы будете перенаправлены на страницу «Экземпляры» , где увидите новый экземпляр со значком слева, указывающим на то, что он все еще создается:

Через две-три минуты экземпляр будет доступен, и вместо синего индикатора появится зелёная галочка. Не забывайте периодически обновлять страницу:

Ваш экземпляр Cloud SQL теперь готов к использованию.

Щелкните имя вашего экземпляра, чтобы открыть страницу сведений об экземпляре, затем щелкните «Управление доступом» :

На вкладке Управление доступом нажмите Пользователи :

На вкладке Пользователи нажмите Изменить пароль root :

Введите новый пароль на странице «Изменение пароля» и нажмите «ОК»:

Активируйте Google Cloud Shell, нажав соответствующую кнопку в консоли Google Cloud Console:

Если вы впервые используете Google Cloud Shell для этого проекта, вы увидите экран Google Cloud Shell. Нажмите «Запустить Cloud Shell» .

cloudShellWelcome.png

Новый Cloud Shell будет отображаться в нижней части Google Cloud Console либо после нажатия кнопки «Запустить Cloud Shell» на экране Google Cloud Shell, если он используется в этом проекте впервые, либо сразу после нажатия кнопки «Активировать Google Cloud Shell», если он использовался ранее.

Скриншот 2016-03-07 в 12.18.01.png

Подключитесь к своему экземпляру Cloud SQL с помощью команды gcloud sql, показанной ниже, но замените «codelab-0» на имя своего экземпляра, если оно отличается:

gcloud sql connect codelab-0 --user=root

Вы должны увидеть:

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

Как показано здесь, вам будет предложено ввести пароль, заданный на предыдущем шаге. Теперь у вас есть полнофункциональная командная строка MySQL, в которую вы вошли как «root». Вы можете использовать её для ввода SQL-запросов, например, такого, как этот, для создания новой базы данных с именем «codelab»:

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

Если запрос выполнен успешно, ваш экземпляр работает. Давайте выйдем и загрузим демонстрационные данные для выполнения реальных запросов.

Введите «exit;» и нажмите Enter, чтобы выйти из командной строки mysql.

Мы загрузим набор данных по выборке сотрудников , который вы найдете в официальной документации MySQL.

Сначала нам нужно загрузить скрипты и данные:

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

Затем нам нужно создать базу данных и таблицы, а затем загрузить данные. Снова замените codelab-0 на имя вашего экземпляра, если оно отличается:

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

Теперь мы можем выполнять запросы к данным. Ниже приведены примеры запросов. Вы также можете создать запросы самостоятельно. Чтобы ознакомиться со схемой базы данных, откройте файл employees.sql . Сначала войдите в командную строку SQL и переключитесь на базу данных сотрудников. Замените codelab-0 именем вашего экземпляра, если оно отличается:

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

После завершения запроса к набору данных о сотрудниках используйте команду «exit», чтобы выйти из командной строки MySQL.

Этот шаг необязателен. Если вы хотите продолжить эксперименты с экземпляром Cloud SQL, вам не нужно удалять его сейчас. Однако с проекта, который вы используете, по-прежнему будет взиматься плата за этот экземпляр. Если этот экземпляр вам больше не нужен, вам следует удалить его сейчас, чтобы избежать оплаты.

Обратите внимание, что после удаления экземпляра Cloud SQL вы не сможете повторно использовать это имя экземпляра в течение недели.

У вас есть два варианта удаления экземпляра Cloud SQL.

1) Используйте gcloud в вашей среде Cloud Shell. Замените codelab-0 на имя вашего экземпляра, если оно отличается:

$ 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) Вернитесь на страницу экземпляров Cloud SQL, нажав на SQL в левом верхнем углу:

Откройте раскрывающееся меню рядом с экземпляром, который вы хотите удалить, и выберите «Удалить»:

Удаление экземпляра необратимо! Данные из этого экземпляра не подлежат восстановлению. Чтобы предотвратить случайное удаление не того экземпляра, необходимо подтвердить удаление, введя имя экземпляра в диалоговом окне подтверждения:

Введите имя вашего экземпляра и нажмите Delete .

Вы создали новый экземпляр Cloud SQL, настроили пароль root, создали пустую базу данных и (при необходимости) удалили экземпляр Cloud SQL.

Что мы рассмотрели

  • Создание экземпляров Cloud SQL через Google Cloud Console.
  • Установка пароля root для SQL через Google Cloud Console.
  • Подключение к базе данных с помощью клиента mysql.
  • Создание новой базы данных MySQL через командную строку mysql.
  • Удаление экземпляра Cloud SQL.

Узнать больше