如何在 Google Compute Engine 上設定 MySQL

如果您需要在自己的 Google Cloud Platform 專案中部署 MySQL,可以採取以下幾種做法。您可以使用 Google Cloud SQL、Google Cloud Platform Marketplace 或在 Google Compute Engine 上手動安裝 MySQL。

Google Cloud SQL 以網路服務的方式提供 MySQL。您可以使用 Google Cloud SQL 在 Google 的雲端環境中託管 MySQL 資料庫,並讓 Google Cloud Platform 處理管理工作,例如複寫、管理修補程式及管理資料庫。

GCP Marketplace 提供簡單的點擊部署介面,讓您將 MySQL 輕鬆安裝到 Compute Engine 執行個體中。GCP Marketplace 不只包含獨立的 MySQL 安裝,還有數種使用 MySQL 的網路開發堆疊,包括 LAMP 堆疊、LEMP 堆疊及 Percona MySQL 叢集。

如果您想要手動安裝和自訂 MySQL,使用 Compute Engine 建立一個 MySQL 資料庫,只需要幾分鐘的時間。本文內容將協助您判斷要使用哪個選項,並逐步說明如何在 Compute Engine 上手動安裝 MySQL 資料庫。

如何選擇正確的 MySQL 部署選項

如果您想讓 Google Cloud Platform 處理後端資料庫和伺服器管理工作,Google Cloud SQL 是理想選擇。例如,Cloud SQL 提供自動化備份和時間點復原功能。此外,您的資料會在多個區域複寫,提高可用性和彈性。

如果您需要 Cloud SQL 不支援的 MySQL 功能,可以在 Compute Engine 上安裝 MySQL。例如,Cloud SQL 不支援使用者定義函式或 SUPER 權限。詳情請參閱 Cloud SQL 常見問題

如果您決定在 Compute Engine 上安裝 MySQL,可以使用 Google GCP Marketplace 來部署 MySQL 安裝,或在 Compute Engine 執行個體上手動安裝 MySQL。GCP Marketplace 提供的便利方法,讓您在較大型的開發堆疊中部署 MySQL。GCP Marketplace 提供數種 MySQL 安裝選項,包括獨立 MySQL 安裝、LAMP 堆疊、LEMP 堆疊、Nginx 堆疊、Percona MySQL 叢集安裝,以及數種其他選項。

如果 GCP Marketplace 服務不符合您的需求,您可以在 Compute Engine 執行個體上手動安裝 MySQL。例如,您可能想在您建立的自訂映像檔上部署 MySQL,或者完全控制安裝過程。

若要在 Compute Engine 執行個體上手動安裝 MySQL,您只需要建立 Compute Engine 執行個體,並將 MySQL 直接安裝到執行個體上。本文的其餘內容說明如何在 Compute Engine 執行個體上手動安裝 MySQL。

目標

  • 建立 Compute Engine 執行個體
  • 安裝 MySQL
  • 連線至 MySQL

事前準備

  1. Google Cloud Platform 主控台中建立新專案。您可以使用現有的專案,但建立新專案能讓清除作業變得更容易。

您可以使用 Google Cloud Platform 主控台完成本文所述的所有步驟,但如果您想要使用 gcloud 指令列工具,請遵循下列步驟以啟用 Compute Engine API 並安裝 Google Cloud SDK。

  1. 使用 Google Cloud Platform 主控台啟用 Compute Engine API

  2. 安裝 Google Cloud SDK

  3. 設定工作區,讓指令更精簡。請將下列指令中的 [PROJECT_ID][ZONE] 替換成您專案的值。如需完整的區域清單,請參閱可用地區與區域

    gcloud config set project [PROJECT_ID]
    gcloud config set compute/zone [ZONE]
    

建立 Compute Engine 執行個體

建立 MySQL 的 Compute Engine 執行個體,並建立 SSH 連線到新建立的執行個體。預設的作業系統是 Debian 第 9 版。如果您想要在此教學課程中使用不同的作業系統,可以從 Compute Engine 說明文件中映像檔頁面所述的選項中選擇。

主控台


若要在 Google Cloud Platform 主控台中建立 Compute Engine 執行個體:

  1. 開啟 Google Cloud Platform 主控台

  2. 選取新建立的專案,然後按一下 [Continue] (繼續)

  3. 按一下 [Create instance] (建立執行個體) (如果您已有執行個體,請按一下 [New instance] (新增執行個體))。將執行個體命名為「mysql-test」

  4. 若要指定非預設值的作業系統,請在「Boot disk」(開機磁碟) 區段中按一下 [Change] (變更),接著請選取要使用的作業系統,然後按一下 [Select] (選取)

  5. 按一下 [Create] (建立)

若要建立 SSH 連線:

  1. 在「VM instances」(VM 執行個體) 頁面的清單中,尋找您剛剛新建的 VM 執行個體。

  2. 在「Connect」(連線) 欄中,按一下 [SSH],即會在瀏覽器視窗中開啟 SSH 終端機。

gcloud


  1. 若要建立 Compute Engine 執行個體,請使用 gcloud compute instances create 指令。若要使用不同的作業系統,請新增 --image 參數,後面接映像檔名稱。例如,若要使用 Debian 9,請新增 --image debian-9

    gcloud compute instances create mysql-test
    
  2. 使用 ssh 連線至執行個體。

    gcloud compute ssh mysql-test
    

安裝 MySQL

下列步驟說明如何在 Compute Engine 執行個體上安裝 MySQL。

Debian 與 Ubuntu


  1. 更新 apt-get 套件管理員。

    sudo apt-get update
    
  2. 安裝 MySQL。安裝程序會為您啟動 MySQL 服務。

    sudo apt-get -y install mysql-server
    

CentOS 6 與 RHEL 6


  1. 安裝 MySQL。

    sudo yum -y install mysql-server
    
  2. 啟動 MySQL 伺服器。

    sudo service mysqld start
    

CentOS 7 與 RHEL 7


第 7 版的 CentOS 和 RHEL 的套件管理系統現在包含 MariaDB 而非 MySQL。若要在 CentOS 7 上安裝 MySQL,您必須先更新套件管理員。

  1. 更新套件管理員以納入 MySQL。

    sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
  2. 安裝 MySQL。

    sudo yum -y install mysql-community-server
    
  3. 啟動 MySQL 伺服器。

    sudo /usr/bin/systemctl start mysqld
    

提升 MySQL 安裝的安全性

註冊帳號若要提升 MySQL 安裝的安全性,請執行 mysql_secure_installation 指令。如果您在安裝過程中沒有設定密碼,請在此步驟建立密碼。如要進一步瞭解此指令,請參閱 MySQL 說明文件中的 mysql_secure_installation

sudo mysql_secure_installation

連線至 MySQL

下列步驟說明如何從 mysql-test 執行個體連線至 MySQL。

  1. 使用 MySQL 用戶端連線至 MySQL。

    sudo mysql -u root -p
    

    連線至 MySQL 時,提示會變更為:

    mysql>

    此時您就可以執行 MySQL 指令。例如,下列指令顯示正在執行的執行緒,包含目前的連線。

    mysql> SHOW processlist;
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host      | db   | Command | Time | State | Info             |
    +----+------+-----------+------+---------+------+-------+------------------+
    | 51 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
    +----+------+-----------+------+---------+------+-------+------------------+
    1 row in set (0.00 sec)

    您可以使用下列指令來產生使用者清單。

    mysql> SELECT User, Host, Password FROM mysql.user;
    +------------------+------------+-------------------------------------------+
    | User             | Host       | Password                                  |
    +------------------+------------+-------------------------------------------+
    | root             | localhost  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | mysql-test | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | 127.0.0.1  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | ::1        | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | debian-sys-maint | localhost  | *AD7B08AF7691A552A57900F1A9D8AE26ED499117 |
    +------------------+------------+-------------------------------------------+
    5 rows in set (0.00 sec)
  2. 指令執行完成後,請使用 exit 指令來結束 MySQL 用戶端,然後再次使用 exit 以登出 Compute Engine 執行個體。

    mysql> exit
    exit

清除所用資源

完成 MySQL 教學課程後,您可以清除在 GCP 上建立的資源,這樣資源就不會占用配額,日後也無須為其付費。下列各節將說明如何刪除或停用這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除執行個體

如要刪除 Compute Engine 執行個體:

  1. 在 GCP 主控台中,前往「VM Instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 找到 您要刪除的執行個體,然後點選旁邊的核取方塊。
  3. 按一下頁面頂端的 [刪除] 按鈕,刪除該執行個體。

後續步驟

您現在已瞭解如何在 Compute Engine 上安裝 MySQL。如要看看使用 MySQL 的更複雜的應用程式,請瀏覽 GCP Marketplace 上使用 MySQL 的多種開發堆疊

如果您的需求包括高可用性和擴充性,請考慮在 Compute Engine 上安裝 MySQL 叢集。MySQL 叢集透過不共用的叢集功能和自動資料分割功能,提供高可用性和擴充性。GCP Marketplace 為 Percona 提供點擊部署選項。Percona 是一種用於 MySQL 叢集的開放原始碼解決方案。

另一個為 MySQL 提供擴充能力的開放原始碼解決方案是 Vitess,這個解決方案處理了 2011 年開始所有的 YouTube 資料庫流量。Vitess 非常適合在容器中執行的應用程式。要進一步瞭解如何在容器化環境中使用 Vitess,請參閱在 Kubernetes 執行 Vitess 的相關文章。

如要進一步瞭解 MySQL,請參閱 MySQL 官方說明文件

自行試用其他 Google Cloud Platform 功能。請參考我們的教學課程

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
解決方案