In questa pagina viene descritto come utilizzare il client sqlcmd, installato su di Compute Engine, per la connessione a Cloud SQL.
Puoi utilizzare l'IP privato, l'IP pubblico, il proxy di autenticazione Cloud SQL o l'immagine Docker del proxy di autenticazione Cloud SQL.
Per istruzioni dettagliate su come eseguire un'applicazione web di esempio di Compute Engine collegata a Cloud SQL, consulta la guida introduttiva per la connessione da Compute Engine.
Prima di iniziare
Questa attività non include istruzioni per la configurazione dell'istanza Compute Engine. Se hai bisogno di aiuto per creare e configurare un'istanza Compute Engine, consulta la documentazione di Compute Engine.
IP privato
Per connetterti a Cloud SQL da un'istanza Compute Engine utilizzando l'IP privato, l'accesso privato ai servizi deve essere configurato per il tuo ambiente e L'istanza Cloud SQL deve essere configurata in modo da utilizzare l'IP privato. L'istanza Compute Engine deve trovarsi nella stessa regione dell'istanza Cloud SQL e nella rete configurata per una connessione privata. Scopri di più.
1. Configurare l'istanza per l'utilizzo dell'IP privato
Segui le istruzioni riportate in Configurazione della connettività IP privata.
2. Apri una connessione del terminale Cloud Shell all'istanza Compute Engine.
Utilizza le istruzioni appropriate, a seconda del sistema operativo dell'istanza:
- Per Linux, consulta Connessione alle VM Linux.
- Per Windows, consulta Connessione alle VM Windows.
Se la tua istanza Compute Engine esegue un'immagine pubblica RHEL o CentOS, SELinux potrebbe bloccare la connessione proxy. In questo caso, devi configurare la funzionalità SELinux per consentire la connessione.
Per ulteriori informazioni su SELinux per RHEL, vedi documentazione di RHEL. Per ulteriori informazioni su SELinux per CentOS, consulta la documentazione di CentOS.
3. Installa il client sqlcmd sull'istanza Compute Engine, se non è già installato.
Debian/Ubuntu
Per Debian/Ubuntu, installa gli strumenti a riga di comando di SQL Server applicabili.
CentOS/RHEL
Per CentOS/RHEL, installa gli strumenti a riga di comando SQL Server applicabili.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando SQL Server applicabili.
Altre piattaforme
Consulta la pagina di destinazione per l'installazione di SQL Server, nonché la pagina dei download di SQL Server.
4. Connettiti al client sqlcmd.
sqlcmd -S CLOUD_SQL_PRIVATE_IP_ADDRESS -U USERNAME
Puoi trovare l'indirizzo IP privato nella
pagina delle istanze Cloud SQL o eseguendo il seguente
gcloud
comando:
gcloud sql instances list
IP pubblico
Per connetterti utilizzando l'IP pubblico:
1. Aggiungi un indirizzo IP IPv4 statico all'istanza Compute Engine, se non ne ha già uno.
Non puoi connetterti a Compute Engine utilizzando IPv6. Per informazioni su come aggiungere un indirizzo IP statico, consulta Prenotare un nuovo indirizzo IP esterno statico nella documentazione di Compute Engine.
2. Autorizza l'indirizzo IP statico dell'istanza Compute Engine come rete in grado di connettersi all'istanza Cloud SQL.
Per ulteriori informazioni, vedi Configurazione dell'accesso per connessioni con IP pubblico.
3. Apri una connessione del terminale Cloud Shell all'istanza Compute Engine.
Usa le istruzioni appropriate, a seconda del funzionamento dell'istanza di sistema:
- Per Linux, consulta Connessione alle VM Linux.
- Per Windows, vedi Connessione alle VM Windows.
Se la tua istanza Compute Engine esegue un RHEL o Immagine pubblica di CentOS, SELinux potrebbe bloccare la connessione al proxy. In questo caso, devi configurare la funzionalità SELinux per consentire la connessione.
Per ulteriori informazioni su SELinux per RHEL, consulta la documentazione di RHEL. Per ulteriori informazioni su SELinux per CentOS, consulta la documentazione di CentOS.
4. Installa il client sqlcmd sull'istanza Compute Engine, se non è già installata.
Debian/Ubuntu
Per Debian/Ubuntu, installare gli strumenti a riga di comando applicabili di SQL Server.
CentOS/RHEL
Per CentOS/RHEL, installare gli strumenti a riga di comando applicabili di SQL Server.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando SQL Server applicabili.
Altre piattaforme
Consulta pagina di destinazione per l'installazione di SQL Server, nonché Pagina di download di SQL Server.
5. Connettiti al client sqlcmd.
sqlcmd -S CLOUD_SQL_PUBLIC_IP_ADDR -U USERNAME
Puoi trovare l'indirizzo IP pubblico nella
pagina delle istanze Cloud SQL o eseguendo il seguente
comando gcloud
:
gcloud sql instances list
Per un esempio di come effettuare la connessione utilizzando SSL, consulta Connessione con SSL.
6. Viene visualizzato il prompt sqlcmd.
Proxy di autenticazione Cloud SQL
Per connetterti utilizzando il proxy di autenticazione Cloud SQL da Compute Engine:1. Abilita l'API Cloud SQL Admin.
2. Crea un account di servizio.
- Nella console Google Cloud, vai alla pagina Account di servizio.
- Seleziona il progetto che contiene l'istanza Cloud SQL.
- Fai clic su Crea account di servizio.
- Nel campo Nome account di servizio, inserisci un nome descrittivo per l'account di servizio.
- Modifica l'ID account di servizio impostando un valore univoco e riconoscibile, poi fai clic su Crea e continua.
-
Fai clic sul campo Seleziona un ruolo e scegli uno dei seguenti ruoli:
- Cloud SQL > Client Cloud SQL
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Amministratore Cloud SQL
- Fai clic su Fine per completare la creazione dell'account di servizio.
- Fai clic sul menu di azioni del nuovo account di servizio e seleziona Gestisci chiavi.
- Fai clic sul menu a discesa Aggiungi chiave e quindi su Crea nuova chiave.
-
Verifica che il tipo di chiave sia JSON e fai clic su Crea.
Il file della chiave privata viene scaricato sulla tua macchina. Puoi spostarlo in un'altra posizione. Tieni al sicuro il file della chiave.
Se l'istanza Compute Engine si trova in un progetto diverso dall'istanza Cloud SQL, assicurati che il relativo account di servizio disponga delle autorizzazioni appropriate nel progetto che contiene l'istanza Cloud SQL:
- Vai all'elenco delle istanze Compute Engine nella console Google Cloud.
- Se necessario, seleziona il progetto associato a Compute Engine in esecuzione in un'istanza Compute Engine.
- Seleziona l'istanza Compute Engine per visualizzarne le proprietà.
- Nelle proprietà dell'istanza Compute Engine, copia il nome l'account di servizio.
- Vai alla sezione IAM e pagina Progetti amministratore nella console Google Cloud.
- Seleziona il progetto che contiene l'istanza di Cloud SQL.
- Cerca il nome dell'account di servizio.
-
Se l'account di servizio è già presente e ha un ruolo che include Autorizzazione
cloudsql.instances.connect
, puoi procedere all'indirizzo Passaggio 4.I ruoli
Cloud SQL Client
,Cloud SQL Editor
eCloud SQL Admin
forniscono tutti l'autorizzazione necessaria, così come i ruoli di progettoEditor
eOwner
precedenti. - In caso contrario, aggiungi l'account di servizio facendo clic su Aggiungi.
Nella finestra di dialogo Aggiungi entità, specifica il nome dell'account di servizio e seleziona un ruolo che includa l'autorizzazione
cloudsql.instances.connect
funzionerà qualsiasi ruolo predefinito di Cloud SQL diverso da Visualizzatore.In alternativa, puoi utilizzare il ruolo Editor di base selezionando Progetto > Editor, ma Il ruolo Editor include le autorizzazioni in Google Cloud.
Se non vedi questi ruoli, l'utente Google Cloud potrebbe non disporre dell'autorizzazione
resourcemanager.projects.setIamPolicy
. Puoi controllare le tue autorizzazioni andando alla pagina IAM nella console Google Cloud e cercando il tuo ID utente.- Fai clic su Aggiungi.
Ora vedrai l'account di servizio elencato con il ruolo specificato.
3. Apri una connessione da terminale all'istanza Compute Engine.
Usa le istruzioni appropriate, a seconda del funzionamento dell'istanza di sistema:
- Per Linux, vedi Connessione alle istanze Linux.
- Per Windows, vedi Connessione a istanze Windows.
Se la tua istanza Compute Engine esegue un'immagine pubblica RHEL o CentOS, SELinux potrebbe bloccare la connessione proxy. Se questo devi configurare la funzione SELinux per consentire la connessione.
Per ulteriori informazioni su SELinux per RHEL, vedi documentazione di RHEL. Per ulteriori informazioni su SELinux per CentOS, consulta la documentazione di CentOS.
4. Installa il client sqlcmd sull'istanza Compute Engine, se non è già installato.
Debian/Ubuntu
Per Debian/Ubuntu, installare gli strumenti a riga di comando applicabili di SQL Server.
CentOS/RHEL
Per CentOS/RHEL, installa gli strumenti a riga di comando SQL Server applicabili.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando SQL Server applicabili.
Altre piattaforme
Consulta la pagina di destinazione per l'installazione di SQL Server, nonché la pagina dei download di SQL Server.
5. Installa il proxy di autenticazione Cloud SQL sull'istanza Compute Engine.
Linux a 64 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.amd64
- Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Linux a 32 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.386
- Se il comando
curl
non viene trovato, eseguisudo apt install curl
e ripeti il comando di download. - Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Windows a 64 bit
Clic destro https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x64.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file comecloud-sql-proxy.exe
.
Windows a 32 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x86.exe e seleziona Salva link come per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file incloud-sql-proxy.exe
.
Immagine Docker del proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL ha immagini container diverse, ad esempio distroless
, alpine
,
e buster
. L'immagine del contenitore del proxy di autenticazione Cloud SQL predefinita utilizza
distroless
, che
non contiene shell. Se hai bisogno di una shell o di strumenti correlati, scarica un'immagine basata su
alpine
o buster
.
Per ulteriori informazioni, vedi
Immagini container del proxy di autenticazione Cloud SQL.
Puoi eseguire il pull dell'immagine più recente sulla tua macchina locale utilizzando Docker, utilizzando questo comando:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0
Altro sistema operativo
Per altri sistemi operativi non inclusi qui, puoi compilare il proxy di autenticazione Cloud SQL dal codice sorgente.6. Avviare il proxy di autenticazione Cloud SQL.
Puoi avviare il proxy di autenticazione Cloud SQL utilizzando le socket TCP o l'immagine Docker del proxy di autenticazione Cloud SQL. Il file binario del proxy di autenticazione Cloud SQL si connette a una o più istanze Cloud SQL specificate sulla riga di comando e apre una connessione locale come socket TCP. Altre applicazioni e altri servizi, come il codice dell'applicazione o gli strumenti client per la gestione del database, possono connettersi alle istanze Cloud SQL tramite questa connessione socket TCP.
socket TCP
Per le connessioni TCP, il proxy di autenticazione Cloud SQL rimane in ascolto su localhost
(127.0.0.1
) per impostazione predefinita.
Pertanto, quando specifichi --port PORT_NUMBER
per un'istanza, la connessione locale è in 127.0.0.1:PORT_NUMBER
.
In alternativa, puoi specificare un indirizzo diverso per la connessione locale.
Ad esempio, ecco come fare in modo che il proxy di autenticazione Cloud SQL ascolti sulla porta 0.0.0.0:1234
per la connessione locale:
./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
Copia il tuo INSTANCE_CONNECTION_NAME. Puoi trovarlo nella pagina Panoramica della tua istanza nella console Google Cloud o eseguendo il seguente comando:
gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'
Ad esempio: myproject:myregion:myinstance.
- Se l'istanza ha sia l'IP pubblico che quello privato configurato e vuoi che
Proxy di autenticazione Cloud SQL per utilizzare l'indirizzo IP privato,
devi fornire la seguente opzione quando avvii il proxy di autenticazione Cloud SQL:
--private-ip
- Se utilizzi un account di servizio per autenticare il proxy di autenticazione Cloud SQL, annota la posizione sul computer client del file della chiave privata creato quando hai creato l'account di servizio.
- Avvia il proxy di autenticazione Cloud SQL.
Alcune possibili stringhe di chiamata del proxy di autenticazione Cloud SQL:
- Utilizzo dell'autenticazione di Cloud SDK:
La porta specificata non deve essere già in uso, ad esempio da un server di database locale../cloud-sql-proxy --port 1433 INSTANCE_CONNECTION_NAME
- Utilizzo di un account di servizio e inclusione esplicita del nome della connessione dell'istanza
(consigliato per gli ambienti di produzione):
./cloud-sql-proxy \ --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &
Per saperne di più sulle opzioni del proxy di autenticazione Cloud SQL, consulta Opzioni per l'autenticazione del proxy di autenticazione Cloud SQL.
- Utilizzo dell'autenticazione di Cloud SDK:
Docker
Per eseguire Cloud SQL Auth Proxy in un container Docker, utilizza l'immagine Docker di Cloud SQL Auth Proxy disponibile in Google Container Registry.
Puoi avviare il proxy di autenticazione Cloud SQL utilizzando socket TCP o socket Unix, con illustrati di seguito. Le opzioni utilizzano un INSTANCE_CONNECTION_NAME come la stringa di connessione per identificare un'istanza Cloud SQL. Puoi trovare INSTANCE_CONNECTION_NAME nella pagina Panoramica del tuo nella console Google Cloud. o eseguendo il comando seguente comando:
gcloud sql instances describe INSTANCE_NAME
Ad esempio: myproject:myregion:myinstance
.
A seconda del linguaggio e dell'ambiente, puoi avviare il proxy di autenticazione Cloud SQL utilizzando socket TCP o socket Unix. I socket Unix non sono supportati per applicazioni scritte nel linguaggio di programmazione Java o per Windows completamente gestito di Google Cloud.
Utilizzo di socket TCP
docker run -d \\ -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\ -p 127.0.0.1:1433:1433 \\ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0 \\ --address 0.0.0.0 --port 1433 \\ --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME
Se utilizzi le credenziali fornite dalla tua istanza Compute Engine,
non includono il parametro --credentials-file
e
-v PATH_TO_KEY_FILE:/path/to/service-account-key.json
dalla riga di comando.
Specifica sempre il prefisso 127.0.0.1
in -p in modo che il proxy di autenticazione Cloud SQL non sia
esposti all'esterno dell'host locale. Il valore "0.0.0.0" nel parametro instances
è necessario per rendere la porta accessibile dall'esterno del
container Docker.
Utilizzo dei socket Unix
docker run -d -v /cloudsql:/cloudsql \\ -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0 --unix-socket=/cloudsql \\ --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME
Se utilizzi le credenziali fornite dall'istanza Compute Engine,
non includere il parametro --credentials-file
e la riga
-v PATH_TO_KEY_FILE:/path/to/service-account-key.json
.
Se utilizzi un'immagine ottimizzata per i container, utilizza una directory scrivibile
al posto di /cloudsql
, ad esempio:
-v /mnt/stateful_partition/cloudsql:/cloudsql
Puoi specificare più istanze separate da virgole. Puoi anche utilizzare i metadati di Compute Engine per determinare dinamicamente le istanze a cui connetterti. Scopri di più sui parametri del proxy di autenticazione Cloud SQL.
7. Avvia la sessione sqlcmd.
La stringa di connessione utilizzata dipende dal fatto che tu abbia avviato il proxy di autenticazione Cloud SQL utilizzando una socket TCP o Docker.
Socket TCP
- Avvia il client sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Quando ti connetti utilizzando le socket TCP, accedi a Cloud SQL Auth Proxy tramite
127.0.0.1
. - Se richiesto, inserisci la password.
- Viene visualizzato il prompt sqlcmd.
Serve aiuto? Per assistenza nella risoluzione dei problemi relativi al proxy, consulta Risoluzione dei problemi di connessioni del proxy di autenticazione Cloud SQL. o consulta la pagina dell'assistenza di Cloud SQL.
Passaggi successivi
- Richiedi assistenza la risoluzione dei problemi di connessione per il proxy di autenticazione Cloud SQL.
- Creare utenti e database.
- Scopri di più su IP privato.
- Informazioni su per connetterti all'istanza dall'applicazione.
- Scopri le opzioni di assistenza.