文章段落
透過 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 則是這個
格式為 [專案id]:[region]:[主機名稱]
要注意本機的mysql要先停掉,防止佔用3306 port。
建立連線成功:
但是,還沒完,要登入成功才算!
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官方文件參考:
Hi~~Charlie您好,
您直接打開MySQL Workbench直接連線本機IP 127.0.0.1看看是否可以成功打開?
請問這個方式最後可以透過mysql workbench檢視和操作嗎? 可以的話該怎麼做呢? 感恩