https://cloud.google.com/sql/docs/mysql/connect-instance-local-computer?hl=ja#gcloud
前提:
Goインストール済
Gitインストール済
mysqlクライアントインストール済
-- 1. 前作業
gcloud init
gcloud auth list
gcloud --version
gcloud projects create project01-9999999 \
--name="project01"
gcloud projects list
gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet
gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111
gcloud services enable compute.googleapis.com --project project01-9999999
gcloud components update
-- 2. Cloud SQL Admin APIとIAM APIの有効化
gcloud services list --enabled
gcloud services enable sqladmin.googleapis.com iam.googleapis.com
gcloud sql tiers list
gcloud sql instances create mysql01 \
--assign-ip \
--availability-type=zonal \
--database-version=MYSQL_8_0_30 \
--enable-bin-log \
--no-deletion-protection \
--retained-backups-count=1 \
--root-password='password' \
--no-storage-auto-increase \
--storage-size=10 \
--storage-type=HDD \
--region=asia-northeast1 \
--tier=db-f1-micro
gcloud sql instances list
-- 4. 接続確認
gcloud sql connect mysql01 --user=root
MYSQL_PWD='password' mysql -h 192.0.2.1 -P 3306 -u root
-- 5. データベースの作成
gcloud sql databases create db01 \
--instance=mysql01
gcloud sql databases list --instance=mysql01
-- 6. ユーザーの作成
gcloud sql users create user01 \
--instance=mysql01 \
--password='password'
gcloud sql users list --instance=mysql01
-- 7. サービス アカウントの設定
gcloud iam service-accounts create sa11111111 \
--description="sa11111111" \
--display-name="sa11111111"
gcloud iam service-accounts list
gcloud projects add-iam-policy-binding project01-9999999 \
--member="serviceAccount:sa11111111@project01-9999999.iam.gserviceaccount.com" \
--role="roles/cloudsql.client"
gcloud projects get-iam-policy project01-9999999
gcloud iam service-accounts keys create ~/key01.json \
--iam-account=sa11111111@project01-9999999.iam.gserviceaccount.com
cat ~/key01.json
gcloud iam service-accounts keys list \
--iam-account=sa11111111@project01-9999999.iam.gserviceaccount.com
-- 8. サンプルアプリのクローンを作成する
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/cloudsql/mysql/database-sql
-- 9. サンプルアプリを構成して実行する
export GOOGLE_APPLICATION_CREDENTIALS=~/key01.json
export INSTANCE_CONNECTION_NAME='project01-9999999:asia-northeast1:mysql01'
export DB_PORT='3306'
export DB_NAME='db01'
export DB_USER='user01'
export DB_PASS='password'
go get ./...
go run cmd/app/main.go
-- 10. クリーンアップ
gcloud projects list
gcloud projects delete project01-9999999
rm -rf key01.json