Connettiti a un'origine Cloud SQL-MySQL

In questa pagina viene descritto come connettere un'istanza Cloud Data Fusion privata a un un'istanza Cloud SQL privata che ospita un database MySQL. Una configurazione simile funziona per le istanze Postgres e SQL Server. Sono possibili connessioni pubbliche.

Consigliato: per motivi di sicurezza, utilizza di istanze private di Cloud SQL e Cloud Data Fusion.

Creazione di istanze private in Cloud Data Fusion e Cloud SQL

Per connetterti a un'istanza Cloud SQL privata da un Per l'istanza Cloud Data Fusion, utilizzerai una VM proxy di Compute Engine. Un proxy perché la rete Cloud SQL non è connessa direttamente in peering la rete Cloud Data Fusion e i peer transitivi non possono comunicare tra loro (vedi Panoramica sul peering di rete VPC).

Per creare le istanze private, segui questi passaggi:

  1. Se non ne hai già uno, crea un'istanza Cloud Data Fusion privata. tra cui:

    1. Configurazione di una rete VPC
    2. Allocazione di un intervallo IP
  2. Crea un'istanza Cloud SQL privata nella stessa rete VPC della tua istanza Cloud Data Fusion.

  3. Dopo aver creato l'istanza, vai alla pagina Istanze Cloud SQL e espandi Dettagli istanza. Nella sezione Connetti a questa istanza, copia l'IP e il nome della connessione.

    Vai a Istanze Cloud SQL

Crea una VM privata di Compute Engine

Per creare la VM, puoi inserire i comandi seguenti in Cloud Shell o un altro ambiente in cui Google Cloud SDK sia installato.

I comandi creano una VM con indirizzi IP interni e pubblici (--no-address non è specificato nel comando di creazione della VM di esempio), quindi La VM può accedere a Container Registry per ottenere l'immagine proxy. Puoi usare dati interni ma devi anche usare abilita l'accesso privato Google per la subnet in cui si trova la VM.

  1. Esporta le seguenti variabili di ambiente:

    export PROJECT=CUSTOMER_PROJECT
    export REGION=VM_REGION
    export ZONE=`gcloud compute zones list --filter="name=${REGION}" --limit 1 --uri --project=${PROJECT}| sed 's/.*\///'`
    export NETWORK=CUSTOMER_VPC_NETWORK_NAME
    export SUBNET=CUSTOMER_VPC_SUBNET_NAME
    export INSTANCE_NAME=COMPUTE_ENGINE_VM_NAME
    export SQL_CONN=SQL_INSTANCE_CONNECTION_NAME
    export CDF_IP_RANGE=CLOUD_DATA_FUSION_IP_RANGE
    export VM_IMAGE=$(gcloud compute images list --project=$PROJECT --filter=family:cos-stable --format='value(selfLink.scope())' --limit=1)
    export SQL_PORT=DB_PORT # MySQL 3306 # PostgreSQL 5432 # SQLServer 1433
    

    Sostituisci quanto segue:

    • CUSTOMER_PROJECT: il nome del progetto
    • VM_REGION: la regione in cui si trova la VM di Compute Engine
    • CUSTOMER_VPC_NETWORK_NAME: il nome della tua rete
    • CUSTOMER_VPC_SUBNET_NAME: della subnet nome
    • COMPUTE_ENGINE_VM_NAME: il nome del VM di Compute Engine
    • SQL_INSTANCE_CONNECTION_NAME: il nome della connessione del passaggio precedente
    • CLOUD_DATA_FUSION_IP_RANGE: l'indirizzo IP intervallo
    • DB_PORT: il numero di porta del database Cloud SQL
  2. Crea una regola firewall per consentire il traffico in entrata di Cloud Data Fusion con il seguente comando gcloud CLI:

    gcloud compute firewall-rules create allow-private-cdf \
    --allow=tcp:22,tcp:${SQL_PORT} \
    --source-ranges=$CDF_IP_RANGE --network=$NETWORK --project=$PROJECT
    
  3. Crea la VM con il seguente comando gcloud CLI:

    gcloud compute --project=${PROJECT} instances create ${INSTANCE_NAME} \
    --zone=${ZONE} \
    --machine-type=g1-small \
    --subnet=${SUBNET} \
    --metadata=startup-script="docker run -d -p 0.0.0.0:${SQL_PORT}:${SQL_PORT} gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy -instances=${SQL_CONN}=tcp:0.0.0.0:${SQL_PORT}" \
    --maintenance-policy=MIGRATE \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image=${VM_IMAGE} \
    --image-project=cos-cloud
    
  4. Ottieni l'indirizzo IP interno della VM con il seguente comando gcloud CLI:

    export IP=`gcloud compute \
    --project=${PROJECT} instances describe ${INSTANCE_NAME} \
    --zone ${ZONE} | grep "networkIP" | awk '{print $2}'`
    
  5. Esegui la promozione dell'IP interno della VM a un IP statico con il seguente comando gcloud CLI:

    gcloud compute --project=${PROJECT} addresses create mysql-proxy \
    --addresses ${IP} --region ${REGION} --subnet ${SUBNET}
    
  6. Ottieni l'IP da utilizzare nella stringa di connessione JDBC MySQL di Cloud Data Fusion quando configuri la connessione:

    echo ${IP}
    

Dopo aver creato la VM con un IP statico, utilizza l'IP come host o inseriscilo nella stringa di connessione JDBC per accedere al database MySQL da Cloud Data Fusion.

Accedere a MySQL da Cloud Data Fusion

Prima di poterti connettere all'istanza MySQL dall'istanza Cloud Data Fusion, installa il driver JDBC MySQL dall'hub Cloud Data Fusion (o direttamente dai download della community MySQL).

Inserisci i dettagli della connessione per il database MySQL in in Cloud Data Fusion. Puoi inserire i dettagli e testare la connessione su la pagina Wrangler.

(Facoltativo) Altri modi per connettersi a MySQL

In Cloud Data Fusion puoi accedere a MySQL nei seguenti modi:

  • Nella pagina Studio, fai clic sul plug-in dell'origine MySQL e inserisci i dettagli di connessione.
  • Nella pagina Studio, utilizza il plug-in Origine dati di database, che ha proprietà simili (Stringa di connessione, Nome utente, Password e Argomenti di connessione).

Altre connessioni

Sebbene sia consigliabile connettere le istanze private, le seguenti connessioni sono possibili:

  • Da un'istanza Cloud Data Fusion pubblica a una rete Cloud SQL pubblica (utilizzando un proxy Cloud SQL pubblico o inserendo 0.0.0.0/0 in una rete autorizzata). Consulta le opzione di connessione IP pubblico per Cloud SQL.
  • Un'istanza Cloud Data Fusion privata e un'istanza Cloud SQL pubblica (utilizzando un proxy Cloud SQL pubblico in una rete autorizzata).
  • Un'istanza Cloud Data Fusion pubblica e un'istanza Cloud SQL privata.