https://cloud.google.com/sql/docs/mysql/import-export/import-export-sql?hl=ja
SQL ダンプファイルや CSV ファイルをエクスポートする場合は、
ファイル拡張子 .gz を使用してデータを圧縮します。ファイル拡張子 .gz のファイルは、インポートすると自動的に解凍されます。
-- 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
gcloud services list --enabled
gcloud services enable sqladmin.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 \
--retained-transaction-log-days=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
gcloud sql instances describe mysql01
-- 4. サービス アカウントの設定
gcloud projects add-iam-policy-binding project01-9999999 \
--member="serviceAccount:p111111111111-111111@gcp-sa-cloud-sql.iam.gserviceaccount.com" \
--role="roles/storage.objectAdmin"
gcloud projects get-iam-policy project01-9999999
-- 5. テストデータ作成
gcloud sql connect mysql01 --user=root
create database test;
use test
create table tab1(col1 int, col2 varchar(10), col3 datetime);
insert into tab1 values( 1,'A',current_timestamp() );
insert into tab1 values( 2,'B',current_timestamp() );
insert into tab1 values( 3,'C',current_timestamp() );
select * from tab1;
-- 6. バケット作成
gsutil mb -c standard -l asia-northeast1 gs://bucket123
gsutil ls
gsutil ls -r gs://bucket123
-- 7. export/import
gcloud sql export sql mysql01 \
gs://bucket123/mysql01.dmp.gz \
--database=test
gcloud sql export csv mysql01 \
gs://bucket123/mysql01.csv.gz \
--database=test \
--query="select * from tab1"
gsutil ls -r gs://bucket123
import前にテーブルをdropする
gcloud sql import sql mysql01 \
gs://bucket123/mysql01.dmp.gz \
--database=test
gcloud sql import csv mysql01 \
gs://bucket123/mysql01.csv.gz \
--database=test \
--table=tab1
-- 8. クリーンアップ
gsutil rm -r gs://bucket123
gsutil ls
gcloud sql instances delete mysql01 --quiet
gcloud sql instances list
gcloud projects list
gcloud projects delete project01-9999999 --quiet