目的
當 GCP 一年的 free-tier 結束後,GCP MySQL 的費用成為每月帳單上最主要的支出項目之一(另一個則是 Compute Engine)。當時將資料庫從安裝 WordPress 服務的 Compute Engine 移到 GCP MySQL 上,主要是想要練習資料庫的搬遷與設定。既然目前資料庫的使用情況並沒有一定要完全依賴 GCP MySQL 的優點,像是資料庫的備份,其實可以從 phpMyAdmin 手動操作。因此,這篇文章主要是紀錄將 WordPress 的資料庫從 GCP MySQL 切換回 Web Server MySQL 的過程。
方法
本篇使用的方法,可以參考之前寫的文章:
順序則是反過來。
將 GCP MySQL 的資料匯出
「SQL」>「選擇資料庫 Instance」>「Export」>「Cloud Storage export location」選擇檔案輸出的目的地 bucket 與檔案名稱 > 「Format」選「SQL」>「Show advanced options」選擇要匯出的資料庫,多個資料庫以逗點分隔 > 按下「Export」執行匯出。
References
Exporting data using Cloud SQL
從 Storage 下載輸出的 SQL 檔案
前往在上一個步驟中選擇的 Storage bucket,下載匯出的 SQL 檔案。
建立連向 phpMyAdmin 的 SSH tunnel 連線
參考之前寫過的文章:
關於文中提到的指令:ssh -L 8888:localhost:80 -l [USERNAME] [VM_IP] -i [SSH_PRIVATE_KEY] -N
[USERNAME]
是登入 VM instance 的使用者名稱。
小提示:可以在「Compute Engine」>「Remote access」>「Open in browser window」,命令列視窗的左側找到。
[VM_IP]
是 VM instance 的外部 IP address。
[SSH_PRIVATE_KEY]
是本地端電腦的 SSH private key。Private key 的產生方式可參考 Creating a new SSH key 這個連結。
使用 SSH + Private key 建立 tunnel 之前,需要先到「Compute Engine」>「Metadata」>「SSH Keys」,將產生的 public key 填入。
References
Creating a new SSH key
匯入 SQL 檔案
這邊比較單純,前往「匯入」> 「由電腦上傳」選擇 SQL 檔案,再按「執行」即可。
但是如果檔案過大,我的情況是檔案 1.2 MB,上傳時 server 回覆 413 Request Entity Too Large
可以參考之前寫過的這篇文章,修改 NGINX 的 config 檔案,將 http
區塊新增 client_max_body_size 10M;
參數
上次遇到是發生在 WordPress 後台,網址在 https
底下,所以這次需要在 http
也設定一次。
修改資料庫設定檔
參考之前的文章:修改 WordPress instance 的資料庫設定檔,修改後記得使用指令將相關的服務重新啟動。
關閉 GCP MySQL 的服務
前往 GCP SQL 的頁面,將資料庫 instance 切換為 stop。
Stopped 狀態的 instance 不會繼續被收費,但已使用儲存空間則會被繼續收費(費用與資料庫 instance 相比少很多,大約 1 鎂/月 左右
References
Stopping MySQL instance
發佈留言