如要在您建立的 Compute Engine 執行個體上手動安裝 MySQL,請完成下列步驟。
如要瞭解在 Compute Engine 上設定 MySQL 的多種選項,請參閱「Compute Engine 上的 MySQL」。如要瞭解哪些 Compute Engine 產品適合 MySQL,請參閱「在 Compute Engine 上設定 MySQL」。
事前準備
- 使用 Google Cloud 主控台啟用 Compute Engine API。
- 安裝 Google Cloud CLI
調整工作區的設定,設法讓指令變得更精簡。將下列指令中的 PROJECT_ID、REGION 和 ZONE 替換成您專案的值。如需完整的區域清單,請參閱「可用地區與區域」一節。
gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
建立 Compute Engine 執行個體並建立 SSH 連線
建立 MySQL 的 Compute Engine 執行個體,並建立 SSH 連線到新建立的執行個體。預設作業系統為 Debian 第 10 版。如果您希望在本教學課程中使用不同的作業系統,可以選擇 Compute Engine 說明文件中公開映像檔頁面所述的選項。
主控台
建立 Compute Engine 執行個體
如要在 Google Cloud console中建立 Compute Engine 執行個體,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Compute Engine VM instances」(VM 執行個體) 頁面。
選取新建立的專案,然後按一下 [Continue] (繼續)。
按一下 [Create instance] (建立執行個體) (如果您已有執行個體,請按一下 [New instance] (新增執行個體))。將執行個體命名為「mysql-test」。
如要指定非預設值的作業系統,請在「Boot disk」(開機磁碟) 區段中按一下「Change」(變更),設定開機磁碟的屬性。在「Public images」(公開映像檔) 分頁中選取作業系統,然後按一下「Save」(儲存)。
為符合安全性最佳做法,請建立沒有外部 IP 位址的執行個體。
展開「進階選項」和「網路」。在「Network interfaces」下方展開「default」介面,然後在「External IPv4 address」選單中選取「None」。
按一下 [建立]。
設定網路位址轉譯
如要使用 Cloud NAT 設定及管理網路位址轉譯,請按照下列步驟操作:
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下「開始使用」或「建立 Cloud NAT 閘道」。
在「閘道名稱」中輸入
nat-simple-configuration
。如要選取 Cloud Router,請在「Select Cloud Router」部分執行下列操作:
- 在「Network」(網路) 中選取 default。
- 在「區域」中,選取您為 VM 指定的區域。
在「Cloud Router」部分,選取「建立新路由器」。
在隨即顯示的「Create a router」對話方塊中,輸入路由器的名稱 (例如
nat-router-simple-configuration
),然後按一下「Create」。
按一下 [Advanced configurations] (進階設定)。
在「Logging」區段中,選取「Translation and errors」。這項設定會將 Cloud NAT 設為將所有記錄傳送至 Cloud Logging。
按一下 [建立]。
建立與 VM 的 SSH 連線
如要建立 SSH 連線,請按照下列步驟操作:
在「VM instances」(VM 執行個體) 頁面的清單中,尋找您剛剛新建的 VM 執行個體。
在該 VM 的「Connect」欄中,按一下「SSH」。SSH 終端機會在瀏覽器視窗中開啟。
gcloud
如要建立 Compute Engine 執行個體,請使用
gcloud compute instances create
指令。如要指定作業系統,請新增--image-family
參數,後面接映像檔系列,或新增--image
參數,後面接特定映像檔版本的映像檔名稱。舉例來說,如要使用 Debian 10 系列中的最新映像檔,請新增--image-family debian-10
。使用公開圖片���,���須使用--image-project
參數提供圖片專案。gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
建立 Cloud Router。
gcloud compute routers create nat-router-simple-configuration \ --network=default
使用 Cloud NAT 設定及管理網路位址轉譯。
gcloud compute routers nats create nat-simple-configuration \ --router=nat-router-simple-configuration \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --enable-logging
使用
ssh
連線至執行個體。gcloud compute ssh \ --tunnel-through-iap \ mysql-test
系統會使用由 Identity-Aware Proxy (IAP) 處理的 TCP 轉送功能建立 SSH 連線。
安裝 MySQL
下列步驟說明如何在 Compute Engine 執行個體上安裝 MySQL。
Debian 10 以上
這些操作說明會安裝 MySQL 8 或 5.7。
Debian 10 以上版本的套件管理系統包含 MariaDB 而非 MySQL。MariaDB 與 MySQL 通訊協定相容,但具有獨立發展的功能組合。詳情請參閱「MariaDB 與 MySQL 的差異」。
如要安裝 MySQL,請下載發布套件,然後使用 dpkg
指令手動安裝。
安裝
wget
依附元件。sudo apt-get install -y wget
下載 MySQL Community Server 發布套件。
export DEB_FILE=mysql-apt-config_0.8.20-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
確認發布套件檔案的完整性。
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
如果您看到以下輸出內容,表示檔案的真實性和完整性已通過驗證:
mysql-apt-config_0.8.20-1_all.deb: OK
驗證檔案後,請將 MySQL 套件新增至本��套件存放區。
sudo dpkg -i ${DEB_FILE}
系統會提示您確認安裝選項,包括 MySQL 版本。
選取頂端的「MySQL Server & Cluster」選單選項後,按下「Return」鍵,然後使用方向鍵選擇伺服器版本。
本指南假設您會選擇 MySQL 8.0 或 5.7。選取版本後,按下鍵盤上的 Return 鍵。
確認設定選單中選取的選項無誤後,請使用方向鍵選取選單中的
Ok
,然後按下鍵盤上的 Return 鍵。更新套件快取。
sudo apt-get update
如果您收到類似「The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29」的 GPG 錯誤訊息,請使用符合下列模式的指令匯入缺少的 GPG 金鑰:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
在示範錯誤訊息中,缺少的公開金鑰為
467B942D3A79BD29
;請使用--recv-keys
選項提供這個值。重複執行指令,更新套件快取。
安裝 MySQL。安裝程序會為您啟動 MySQL 服務。
sudo apt-get -y install mysql-community-server
系統會提示您提供一些安裝詳細資料,例如根密碼。
Debian 9
這些操作說明會安裝 MySQL 8 或 5.7。
根據預設,某些 Debian 版本 (例如,Debian 9) 會將 MariaDB 設為預設的 MySQL 伺服器。MariaDB 能與 MySQL 相容,且可以使用相同的指令進行叫用。如要詳細瞭解 MariaDB 與標準 MySQL 的差異,請參閱「從 MySQL 遷移至 Debian 9 中的 MariaDB」。
如要安裝 MySQL,請按照下列操作說明操作:
下載 MySQL Community Server 發布套件。
export DEB_FILE=mysql-apt-config_0.8.17-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
確認發布套件檔案的完整性。
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
如果您看到下列輸出內容,表示檔案的真實性和完整性已通過驗證。
mysql-apt-config_0.8.17-1_all.deb: OK
驗證檔案後,請將 MySQL 套件新增至本機套件存放區。
sudo dpkg -i ${DEB_FILE}
系統會提示您確認安裝選項,包括 MySQL 版本。
選取頂端的「MySQL Server & Cluster」選單選項後,按下「Return」鍵,然後使用方向鍵選擇伺服器版本。
本指南假設您會選擇 MySQL 8.0 或 5.7。選取版本後,按下鍵盤上的 Return 鍵。
確認設定選單中選取的選項無誤後,請使用方向鍵選取選單中的
Ok
,然後按下鍵盤上的 Return 鍵。更新套件快取。
sudo apt-get update
如果您收到類似「The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29」的 GPG 錯誤訊息,請使用符合下列模式的指令匯入缺少的 GPG 金鑰:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
在示範錯誤訊息中,缺少的公開金鑰為
467B942D3A79BD29
;請使用--recv-keys
選項提供這個值。重複執行指令,更新套件快取。
安裝 MySQL。安裝程序會為您啟動 MySQL 服務。
sudo apt-get -y install mysql-community-server
Ubuntu
對於 Ubuntu 1804 以下版本,這些操作說明會安裝 MySQL 5.7。
針對 Ubuntu 2004 以上版本,這些操作說明會安裝 MySQL 8。
更新
apt-get
套件管理員。sudo apt-get update
安裝 MySQL。安裝程序會為您啟動 MySQL 服務。
sudo apt-get -y install mysql-server
根據預設,在 Ubuntu 發行版本中,mysql 會使用
auth_socket
外掛程式驗證root
使用者。執行以下查詢,驗證預設設定:echo "SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user='root' ;" \ | sudo mysql -t -u root
輸出結果顯示,從
localhost
連線的root
使用者會使用auth_socket
外掛程式:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
變更這個設定,並將根密碼變更為難以猜測的密碼:
export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD" echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \ | sudo mysql -u root
輸出內容包含新的根密碼:
Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
CentOS 或 RHEL 7
這些操作說明會安裝 MySQL 8。
第 7 版的 CentOS 和 RHEL 的套件管理系統現在包含 MariaDB 而非 MySQL。如要安裝 MySQL,您必須先更新套件管理員。
下載 MySQL Community Server 發布套件。
export RPM_FILE=mysql80-community-release-el7-4.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
確認發布套件檔案的完整性。
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
如果您看到下列輸出內容,表示檔案的真實性和完整性已通過驗證。
mysql80-community-release-el7-4.noarch.rpm: OK
更新套件管理員以納入 MySQL。
sudo rpm -Uvh ${RPM_FILE}
安裝 MySQL。
sudo yum -y install mysql-community-server
啟動 MySQL 伺服器。
sudo /usr/bin/systemctl start mysqld
從伺服器記錄取得臨時的 root 密碼
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Rocky Linux 或 RHEL 8
這些操作說明會安裝 MySQL 8。
Rocky Linux、CentOS Stream 和 RHEL 的 8 版套件管理系統包含 MariaDB 而非 MySQL。如要安裝 MySQL,您必須先更新套件管理員。
下載 MySQL Community Server 發布套件。
export RPM_FILE=mysql80-community-release-el8-2.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
確認發布套件檔案的完整性。
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
如果您看到下列輸出內容,表示檔案的真實性和完整性已通過驗證。
mysql80-community-release-el8-2.noarch.rpm: OK
更新套件管理員以納入 MySQL。
sudo rpm -iUvh ${RPM_FILE}
安裝 MySQL。在安裝期間,請停用 AppStream 存放區,以便安裝程序使用社群伺服器。
sudo yum module disable -y mysql sudo yum install -y \ --disablerepo=appstream \ mysql-community-server
啟動 MySQL 伺服器。
sudo /usr/bin/systemctl start mysqld
從伺服器記錄取得臨時的 root 密碼
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
提升 MySQL 安裝程序的安全性
如要提升 MySQL 安裝程序的安全性,請執行 mysql_secure_installation
指令。如果您在安裝過程中沒有設定密碼,請在此步驟建立密碼。如要進一步瞭解此指令,請參閱 MySQL 說明文件中的 mysql_secure_installation 一節。
sudo mysql_secure_installation
連線至 MySQL
下列步驟說明如何從 mysql-test
執行個體連線至 MySQL。
MySQL 8.0
使用 MySQL 用戶端連線至 MySQL。
sudo mysql -u root -p
連線至 MySQL 時,提示會變更為
mysql>
。然後,您可以執行 MySQL 指令。例如,下列指令顯示正在執行的執行緒,包含目前的連線。
mysql> SHOW processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ | 5 | event_scheduler | localhost | NULL | Daemon | 1889 | Waiting on empty queue | NULL | | 14 | root | localhost | NULL | Query | 0 | init | show processlist | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ 2 rows in set (0.00 sec)
您可以使用下列指令來產生使用者清單。
mysql> SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+------------------------------------------------------------------------+ | User | Host | authentication_string | +------------------+-----------+------------------------------------------------------------------------+ | mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | $A$005$,BS{G+*#cVYxb6x40q0aFS5dp2/Kz6u2vennR5qe0eBKVA/6VW5B | +------------------+-----------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec)
指令執行完成後,請使用
exit
指令結束 MySQL 用戶端,然後再次使用exit
以登出 Compute Engine 執行個體。mysql> exit
Bye
MySQL 5.7
使用 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, authentication_string FROM mysql.user;
+---------------+-----------+-------------------------------------------+ | User | Host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | localhost | *A047B05AAB007B33F8F2BD1FD404661D167D6348 | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +---------------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)
指令執行完成後,請使用
exit
指令結束 MySQL 用戶端,然後再次使用exit
以登出 Compute Engine 執行個體。mysql> exit
Bye
後續步驟
- 如要進一步瞭解 MySQL,請參閱 MySQL 官方說明文件。
- 探索 Cloud Marketplace 上使用 MySQL 的多種開發堆疊。
- ���果您的需求包括高可用性和擴充性,請考慮下列選項:
- 在 Compute Engine 上安裝 MySQL 叢集,透過不共用的叢集功能和自動資料分割功能,提供高可用性和擴充性。
- 點選即可部署 Percona,這是一種用於 MySQL 叢集的開放原始碼解決方案,可從 Cloud Marketplace 取得。
- 安裝 Vitess,這是自 2011 年起處理所有 YouTube 資料庫流量的開放原始碼解決方案。Vitess 非常適合在容器中執行的應用程式。如要進一步瞭解如何在容器化環境中使用 Vitess,請參閱「在 Kubernetes 執行 Vitess」。