使用 Cloud SQL 建立代管的 MySQL 資料庫

Google Cloud SQL 是全代管資料庫服務,可協助您輕鬆設定、維護、管理及操作雲端中的關聯式 MySQL 資料庫。

在本實驗室中,我們將建立新的空白 Cloud SQL 執行個體,使用 MySQL 指令列介面連線至該執行個體,並建立新的空白資料庫。

課程內容

  • 如何在 Google Cloud 控制台中存取 Cloud SQL 網頁版 UI。
  • 如何使用 Google Cloud 控制台建立 Cloud SQL 執行個體。
  • 如何使用 Google Cloud 控制台設定根密碼。
  • 如何透過 Cloud Shell 連線至 Cloud SQL 執行個體。
  • 如何使用 Google Cloud 控制台刪除 Cloud SQL 執行個體。

軟硬體需求

您會如何使用這個教學課程?

僅閱讀 閱讀並完成練習

根據您使用 Google Cloud Platform 服務和 Firebase 的體驗,你會給予什麼評價?

新手 中級 熟練

自行設定環境

如果您還沒有 Google 帳戶 (Gmail 或 Google 應用程式),請先建立帳戶。登入 Google Cloud Platform 主控台 (console.cloud.google.com),然後建立新專案:

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

請記住專案 ID,這是所有 Google Cloud 專案中不重複的名稱 (上述名稱已遭占用,因此不適用於您,抱歉!)。本程式碼研究室稍後會將其稱為 PROJECT_ID

接著,您必須在 Cloud 控制台中啟用帳單,才能使用 Google Cloud 資源。

完成本程式碼研究室的費用不應超過數美元,但如果您決定使用更多資源,或是將資源繼續執行 (請參閱本文件結尾的「清除」一節),則可能會增加費用。

Google Cloud Platform 新使用者享有價值 $300 美元的免費試用期

Google Cloud 控制台中,按一下畫面左上方的「選單」圖示:

向下捲動,然後在「儲存空間」子區段中選取「SQL」

您現在應該會看到 Cloud SQL 網頁介面,如果您使用的專案目前沒有任何 Cloud SQL 執行個體,系統會顯示對話方塊,邀請您建立新的 Cloud SQL 執行個體。

如果您使用的專案已有一或多個 Cloud SQL 執行個體,系統會改為顯示這些執行個體的清單:

假設專案沒有 Cloud SQL 執行個體,請按下「建立執行個體」按鈕來建立執行個體:

如果您使用的專案已有一或多個 Cloud SQL 執行個體,請按下「執行個體」畫面上的「建立執行個體」按鈕,如下所示:

無論是哪一種情況,您現在都應該會看到「Choose an instance type」頁面。在本程式碼研究室中,我們將建立 Cloud SQL 第二代執行個體。按一下「選擇第二代」

2ndGenCloudSQLCreate.png

系統會將您導向至「Create an instance」(建立執行個體) 頁面。您必須在此指定執行個體的名稱。這個名稱在專案中不得重複,但專案之間可以重複,因此假設專案中沒有其他 Cloud SQL 執行個體,您可以使用本範例中顯示的相同執行個體名稱 codelab-0。在「Instance ID」(執行個體 ID) 方塊中輸入「codelab-0」。在本程式碼研究室中,其餘設定可以保留預設值。

請注意,刪除 Cloud SQL 執行個體後,最多有一週的時間無法重複使用該執行個體名稱。如果您打算將這個專案用於實驗以外的用途,請務必選擇與您可能用於實際工作的執行個體名稱不同的名稱,否則您可能會在一段時間內無法重複使用該執行個體名稱。

2ndGenCloudSQLCreate_2.png

捲動至頁面底部,然後按一下「建立」

2ndGenCloudSQLCreate_3.png

系統會將您帶往「Instances」頁面,您會在左側看到新的執行個體和微調器,表示系統仍在建立執行個體:

執行個體會在兩到三分鐘內就緒,藍色旋轉圖示會變成綠色勾號。請務必不時重新整理頁面:

Cloud SQL 執行個體現在已準備就緒。

按一下執行個體名稱,開啟執行個體詳細資料頁面,然後按一下「存取控制」

在「存取控制」分頁中,按下「使用者」

在「使用者」分頁中,按一下「變更 root 密碼」

在「變更密碼」頁面輸入新密碼,然後按下「確定」

在 Google Cloud 控制台中按下提示按鈕,啟用 Google Cloud Shell:

如果您是第一次使用這個專案的 Google Cloud Shell,系統會顯示 Google Cloud Shell 畫面。按下「啟動 Cloud Shell」

cloudShellWelcome.png

新的 Cloud Shell 會顯示在 Google Cloud 控制台底部。如果這是您第一次使用這個專案,請先按下 Google Cloud Shell 畫面上的「啟動 Cloud Shell」;如果先前已使用過,則按下「啟動 Google Cloud Shell」按鈕後,Cloud Shell 就會立即顯示。

Screen Shot 2016-03-07 at 12.18.01.png

使用下列 gcloud sql 指令連線至 Cloud 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> 

如圖所示,系統會提示您輸入在上一個步驟中設定的密碼。現在您已登入「root」,可以使用完整的 MySQL 提示。您可以使用這個工具輸入 SQL 陳述式,例如以下陳述式可建立名為「codelab」的新資料庫:

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

如果查詢傳回 OK,表示執行個體運作正常。現在請結束並載入一些範例資料,執行幾項實際查詢。

輸入「exit;」,然後按下 Enter 鍵,即可退出 mysql 提示。

我們會載入 employee 範例資料集,您可以在 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) 在 Cloud Shell 環境中使用 gcloud。同樣地,如果執行個體名稱不是 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) 按一下左上角的「SQL」,返回 Cloud SQL 執行個體頁面:

開啟要刪除執行個體旁的下拉式選單,然後選擇「刪除」:

執行個體一經刪除即無法復原,該執行個體的資料無法復原。為避免誤刪執行個體,您必須在確認對話方塊中輸入執行個體名稱,確認要刪除執行個體:

輸入執行個體名稱,然後按下「Delete」(刪除)

您已建立新的 Cloud SQL 執行個體、設定根密碼、建立空白資料庫,並 (選擇性) 刪除 Cloud SQL 執行個體。

涵蓋內容

  • 透過 Google Cloud 控制台建立 Cloud SQL 執行個體。
  • 透過 Google Cloud 控制台設定 SQL 根密碼。
  • 使用 mysql 用戶端連線至資料庫。
  • 透過 mysql 提示建立新的 MySQL 資料庫。
  • 正在刪除 Cloud SQL 執行個體。

瞭解詳情