Cloud SQL 安全連線密技 part2 – 使用 Cloud SQL Proxy 連線

Cloud SQL 安全連線密技 part2 – 使用 Cloud SQL Proxy 連線

透過 Cloud SQL Proxy,使用者不必在地端輸入 Cloud SQL IP 即可進行安全連線!以下介紹 Cloud SQL Proxy 連線 5 步驟,快跟著我們一起實作看看吧!

Cloud SQL Proxy 連線步驟一:啟用 Cloud SQL Admin API

選擇SQL主機所在的專案,點擊即可啟用 Cloud SQL Admin API

Cloud SQL Proxy 連線步驟二:安裝 Proxy 軟體

我是用64位元Mac, 指令如下,其他OS可參考這份文件

curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

Cloud SQL Proxy 連線步驟三:建立 Service Account 並產生 key

Service Account 可以設定下列三種權限之一:

  • Cloud SQL Client
  • Cloud SQL Editor
  • Cloud SQL Admin

Cloud SQL Proxy 連線步驟四:啟動Proxy,在 command line 執行

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 \
                  -credential_file=<PATH_TO_KEY_FILE> &

注意:

./cloud_sql_proxy 表示,你的command line 所在的目錄底下,有cloud_sql_proxy 這個剛剛安裝的目錄

那個 instance connection name 則是這個

Cloud SQL instance connection name

格式為 [專案id]:[region]:[主機名稱]

要注意本機的mysql要先停掉,防止佔用3306 port。

建立連線成功:

Cloud SQL Proxy連線成功

但是,還沒完,要登入成功才算!

Cloud SQL Proxy 連線步驟五:連線「本機」MySQL

這邊要用127.0.0.1, 很神奇吧!

mysql -u <USERNAME> -p –host 127.0.0.1

這時候開始會有一些錯誤訊息

“Lost connection to MySQL server at ‘reading initial communication packet, system error: 0”

我上網查解法,找到這篇文章,只要修改 my.cnf 再重啟 MySQL 就可以了。

結果,我電腦裡根本沒有 my.cnf,再繼續上網找,終於找到範本來用了。

然後要重啟 MySQL,一時又忘記重啟指令,再查到這篇文章

用這個:

sudo /usr/local/mysql/support-files/mysql.server restart

結果,再連一次又碰到錯誤:

Unknown suffix ‘?’ used for variable ‘port’ (value ‘3306?’)

再去查,找到這份文件

把 my.cnf 里面的[client]下的port=3306 删除掉,或者在前面加個#

注意有2行 port=3306 都要加#。

再重啟,再連一次,輸入 Cloud SQL 的 root 密碼,終於成功了。

過程中都沒使用到 Cloud SQL 的外部 IP,確保連線資訊不會被偷,真的很神奇!

GCP官方文件參考:

https://cloud.google.com/sql/docs/mysql/connect-admin-proxy

This Post Has 2 Comments

  1. Avatar
    Aaron Lee

    Hi~~Charlie您好,
    您直接打開MySQL Workbench直接連線本機IP 127.0.0.1看看是否可以成功打開?

  2. Avatar
    charlie

    請問這個方式最後可以透過mysql workbench檢視和操作嗎? 可以的話該怎麼做呢? 感恩

發佈留言