Auf dieser Seite wird gezeigt, wie Sie einen sqlcmd-Client von einem Clientcomputer, auf dem Linux ausgeführt wird, oder von einer Compute Engine-Linux-Instanz mit Ihrer Cloud SQL-Instanz verbinden und dafür das Cloud SQL Auth-Proxy-Docker-Image verwenden.
Hinweise
Folgende Voraussetzungen müssen erfüllt sein:
- Die gcloud CLI muss installiert sein. Weitere Informationen
- Die gcloud CLI wurde autorisiert. Weitere Informationen
- Das Standardprojekt für die gcloud CLI wurde festgelegt. Weitere Informationen
- Auf Ihrer Cloud SQL-Instanz wurde ein Datenbanknutzer konfiguriert. Weitere Informationen
sqlcmd-Client über das Cloud SQL Auth-Proxy-Docker-Image verbinden
So stellen Sie eine Verbindung mithilfe des Cloud SQL Auth-Proxy-Docker-Image her:
-
Enable the Cloud SQL Admin API.
- Wenn Sie eine Compute Engine-Instanz verwenden, müssen Sie sie vorbereiten:
- Rufen Sie die Eigenschaften der Compute Engine-Instanz auf:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Stellen Sie sicher, dass die Bereiche auf der Instanz aktiviert sind.
Für eine Authentifizierung mit Bereichen sind diese beiden Bereiche erforderlich:
https://www.googleapis.com/auth/sqlservice.admin
https://www.googleapis.com/auth/devstorage.read_write
Alternativ können durch den Bereich
https://www.googleapis.com/auth/cloud-platform
alle Google Cloud Platform APIs aktiviert werden.Wenn die Compute Engine-Instanz nicht die richtigen Bereiche umfasst, können Sie die Instanz entsprechend aktualisieren. Weitere Informationen finden Sie in der Compute Engine-Dokumentation.
- Stellen Sie mithilfe der Anleitungen unter Mit einer Linux-Instanz verbinden eine Terminalverbindung zur Instanz her.
- Rufen Sie die Eigenschaften der Compute Engine-Instanz auf:
- Installieren Sie den sqlcmd-Client auf der Compute Engine-Instanz oder auf dem Clientcomputer, wenn dieser noch nicht installiert ist.
Debian/Ubuntu
Für Debian/Ubuntu installieren Sie die entsprechenden SQL Server-Befehlszeilentools.
CentOS/RHEL
Für CentOS/RHEL installieren Sie die entsprechenden SQL Server-Befehlszeilentools.
openSUSE
Für openSUSE installieren Sie die entsprechenden SQL Server-Befehlszeilentools.
Andere Plattformen
Weitere Informationen finden Sie auf der Landingpage zur SQL Server-Installation und der SQL Server-Downloadseite.
- Installieren Sie gegebenenfalls den Docker-Client:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
Wenn Sie eine containeroptimierte Compute Engine-Instanz verwenden, ist dort der Docker-Client bereits installiert.
-
Installieren Sie das Cloud SQL Auth-Proxy-Docker-Image aus der Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.12.0
- Wenn Sie das Cloud SQL Auth-Proxy-Docker-Image auf einem lokalen Computer (nicht auf einer Compute Engine-Instanz) ausführen oder wenn Ihre Compute Engine-Instanz nicht die erforderlichen Bereiche enthält, erstellen Sie ein Google Cloud Platform-Dienstkonto.
- Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
- Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie im Feld Name des Dienstkontos einen Namen für das Dienstkonto ein.
- Ändern Sie die Dienstkonto-ID in einen eindeutigen, leicht erkennbaren Wert und klicken Sie dann auf Erstellen und fortfahren.
-
Klicken Sie auf das Feld Rolle auswählen und wählen Sie eine der folgenden Rollen aus:
- Cloud SQL > Cloud SQL-Client
- Cloud SQL > Cloud SQL-Bearbeiter
- Cloud SQL > Cloud SQL-Administrator
- Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
- Klicken Sie auf das Aktionsmenü für das neue Dienstkonto und wählen Sie Schlüssel verwalten aus.
- Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
-
Prüfen Sie, ob der Schlüsseltyp JSON ist, und klicken Sie dann auf Erstellen.
Die Datei mit dem privaten Schlüssel wird auf Ihren Computer heruntergeladen. Sie können die Datei an einen anderen Speicherort verschieben. Bewahren Sie die Schlüsseldatei sicher auf.
Wenn Sie den Cloud SQL Auth-Proxy starten, geben Sie den Pfad zur Schlüsseldatei als „PATH_TO_KEY_FILE“ an.
- Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
-
Wählen Sie die Instanz aus, um ihre Seite Instanzdetails zu öffnen, und kopieren Sie den Namen der Instanzverbindung.
Beispiel:
myproject:us-central1:myinstance
. -
Cloud SQL Auth-Proxy starten
Je nach Ihrer Programmiersprache und Umgebung können Sie den Cloud SQL Auth-Proxy entweder mit TCP-Sockets oder mit Unix-Sockets starten. Allerdings werden Unix-Sockets nicht für Anwendungen unterstützt, die in der Programmiersprache Java oder für die Windows-Umgebung geschrieben sind.
TCP-Sockets
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.12.0 \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter
--credentials-file
und die Zeile-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
nicht an.Geben Sie in -p immer das Präfix
127.0.0.1
an, damit der Cloud SQL Auth-Proxy nicht außerhalb des lokalen Hosts bereitgestellt wird. Die Angabe "0.0.0.0" im Instanzparameter ist erforderlich, damit von außerhalb des Docker-Containers auf den Port zugegriffen werden kann.Unix-Sockets
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.12.0 // --unix-socket=/cloudsql \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter
--credentials-file
und die Zeile-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
nicht an.Wenn Sie ein containeroptimiertes Image verwenden, ersetzen Sie
/cloudsql
durch ein beschreibbares Verzeichnis. Beispiel:-v /mnt/stateful_partition/cloudsql:/cloudsql
Sie können mehrere durch Kommas getrennte Instanzen angeben. Außerdem haben Sie die Möglichkeit, mithilfe von Compute Engine-Metadaten dynamisch die Instanzen zu bestimmen, zu denen eine Verbindung hergestellt werden soll. Proxy-Parameter.
- Starten Sie den Client:
Der zu verwendende Verbindungsstring hängt davon ab, ob Sie den Cloud SQL Auth-Proxy mit einem TCP-Socket oder Docker gestartet haben.
TCP-Sockets
- Starten Sie den sqlcmd-Client:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Wenn Sie die Verbindung mithilfe von TCP-Sockets herstellen, greifen Sie über
127.0.0.1
auf den Cloud SQL Auth-Proxy zu. - Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
- Die sqlcmd-Eingabeaufforderung wird angezeigt.
- Starten Sie den sqlcmd-Client:
Docker-Image des Cloud SQL Auth-Proxys aktualisieren
Das Docker-Image des Cloud SQL Auth-Proxys basiert auf einer bestimmten Version des Cloud SQL Auth-Proxys. Wenn eine neue Version des Cloud SQL Auth-Proxys verfügbar ist, rufen Sie die neue Version des zugehörigen Docker-Image ab, damit Ihre Umgebung auf dem neuesten Stand ist. Die aktuelle Version des Cloud SQL Auth-Proxys finden Sie auf der GitHub-Seite mit Cloud SQL Auth-Proxyversionen. Zukünftige Proxyreleases werden auch im Google Groups Cloud SQL-Ankündigungsforum vermerkt.
Nächste Schritte
- Weitere Informationen zum Cloud SQL Auth-Proxy
- Hilfe zum Beheben von Verbindungsproblemen für den Cloud SQL Auth-Proxy erhalten
- Nutzer erstellen und Datenbanken erstellen.
- Weitere Informationen zu Optionen für die Verbindung der Anwendung mit der Instanz.
- Weitere Informationen zu Docker
- Informationen zur Google Container Registry
- Supportoptionen