Google Cloud Cheatsheet
Cloud SQL
Use this Google Cloud reference while you build software engineering projects, review code for technical interview prep, or polish examples for a software engineer resume.
Create an Instance
# PostgreSQL gcloud sql instances create my-pg \ --database-version=POSTGRES_16 \ --tier=db-f1-micro \ --region=us-central1 # MySQL gcloud sql instances create my-mysql \ --database-version=MYSQL_8_0 \ --tier=db-n1-standard-2 \ --region=us-central1 # SQL Server gcloud sql instances create my-sqlserver \ --database-version=SQLSERVER_2022_STANDARD \ --tier=db-custom-4-15360 \ --region=us-central1 # Production-grade PostgreSQL with HA gcloud sql instances create prod-pg \ --database-version=POSTGRES_16 \ --tier=db-n1-standard-4 \ --region=us-central1 \ --availability-type=REGIONAL \ --storage-type=SSD \ --storage-size=100GB \ --storage-auto-increase \ --backup \ --backup-start-time=02:00 \ --enable-point-in-time-recovery # (PITR flag: --enable-point-in-time-recovery for PostgreSQL; --enable-bin-log for MySQL)
Machine Tiers
| Tier | vCPUs | RAM | Use case |
|---|---|---|---|
db-f1-micro | Shared | 0.6 GB | Dev/test only |
db-g1-small | Shared | 1.7 GB | Light workloads |
db-n1-standard-1 | 1 | 3.75 GB | Small OLTP |
db-n1-standard-4 | 4 | 15 GB | Medium prod |
db-n1-highmem-8 | 8 | 52 GB | Memory-heavy |
db-custom-N-M | N | M MB | Any combo |
Instance Management
# List instances gcloud sql instances list # Describe an instance gcloud sql instances describe my-pg # Stop / start gcloud sql instances patch my-pg --activation-policy=NEVER # stop gcloud sql instances patch my-pg --activation-policy=ALWAYS # start # Resize tier gcloud sql instances patch my-pg --tier=db-n1-standard-4 # Delete (irreversible!) gcloud sql instances delete my-pg
Databases & Users
# Create a database gcloud sql databases create my-db --instance=my-pg # List databases gcloud sql databases list --instance=my-pg # Delete a database gcloud sql databases delete my-db --instance=my-pg # Create a user (PostgreSQL) gcloud sql users create alice \ --instance=my-pg \ --password=s3cretP@ss # Set/change password gcloud sql users set-password alice \ --instance=my-pg \ --password=newP@ss # List users gcloud sql users list --instance=my-pg # Delete a user gcloud sql users delete alice --instance=my-pg
Connecting
Cloud SQL Auth Proxy (recommended for local dev)
# Download the proxy curl -o cloud-sql-proxy \ https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.amd64 chmod +x cloud-sql-proxy # Start proxy (listens on localhost:5432) ./cloud-sql-proxy my-project:us-central1:my-pg \ --credentials-file=key.json # Then connect normally psql "host=127.0.0.1 port=5432 dbname=my-db user=alice password=s3cretP@ss"
Connection String Examples
# PostgreSQL (from Cloud Run / Compute Engine) postgres://alice:s3cretP@ss@/my-db?host=/cloudsql/my-project:us-central1:my-pg # MySQL mysql://alice:s3cretP@ss@unix(/cloudsql/my-project:us-central1:my-mysql)/my-db # Using Public IP (must allowlist the IP) psql -h PUBLIC_IP -U alice -d my-db
Authorized Networks
# Allow a specific IP to connect via public IP gcloud sql instances patch my-pg \ --authorized-networks=203.0.113.0/32 # Remove authorized networks gcloud sql instances patch my-pg \ --clear-authorized-networks
Private IP (recommended for prod)
# Enable Private IP (requires Service Networking API)
gcloud sql instances patch my-pg \
--network=projects/my-project/global/networks/my-vpc \
--no-assign-ipBackups & Recovery
# Create an on-demand backup gcloud sql backups create --instance=my-pg # List backups gcloud sql backups list --instance=my-pg # Restore from backup gcloud sql backups restore BACKUP_ID \ --restore-instance=my-pg # Restore to a point in time (requires PITR: point-in-time-recovery on Postgres, bin-log on MySQL) gcloud sql instances clone my-pg my-pg-restored \ --point-in-time="2025-06-10T14:30:00Z" # Export to Cloud Storage (dump) gcloud sql export sql my-pg gs://my-bucket/dump.sql.gz \ --database=my-db # Import from Cloud Storage gcloud sql import sql my-pg gs://my-bucket/dump.sql.gz \ --database=my-db
High Availability & Replicas
# Enable HA (regional — synchronous standby in another zone) gcloud sql instances patch my-pg \ --availability-type=REGIONAL # Create a read replica gcloud sql instances create my-pg-replica \ --master-instance-name=my-pg \ --region=us-central1 # Promote replica to standalone instance (failover) gcloud sql instances promote-replica my-pg-replica # List replicas gcloud sql instances list --filter="masterInstanceName=my-pg"
Maintenance & Flags
# Set a database flag gcloud sql instances patch my-pg \ --database-flags=log_min_duration_statement=1000,max_connections=200 # Set maintenance window (Sunday 02:00 UTC) gcloud sql instances patch my-pg \ --maintenance-window-day=SUN \ --maintenance-window-hour=2 # Check current flags gcloud sql instances describe my-pg --format="value(settings.databaseFlags)"