Auf dieser Seite wird gezeigt, wie Sie eine Verbindung zu Cloud SQL aus einer Anwendung einrichten, die außerhalb von Google Cloud ausgeführt wird.
Datenbankverbindungen nutzen Ressourcen des Servers und der Anwendung, von der die Verbindung ausgeht. Daher sollten Sie sich bei der Verbindungsverwaltung immer an Best Practices orientieren. So können Sie die Kosten für die Anwendung minimieren und die Wahrscheinlichkeit senken, dass die Verbindungslimits für Cloud SQL überschritten werden. Weitere Informationen finden Sie unter Datenbankverbindungen verwalten.
Vorbereitung
Wenn Sie den Zugriff auf eine Anwendung gewähren, wird nicht automatisch ein Datenbanknutzerkonto für die Verbindung zur Instanz aktiviert. Zum Herstellen einer Verbindung mit einer Instanz benötigen Sie für diese Verbindung ein entsprechendes Datenbanknutzerkonto. Für neue Instanzen bedeutet dies, dass das Standardnutzerkonto konfiguriert sein muss. Mehr erfahren
Verbindungsoptionen
In der folgenden Tabelle werden die Optionen verglichen, mit denen von einer externen Anwendung aus eine Verbindung zu einer Cloud SQL-Instanz hergestellt werden kann:
Verbindungsoption | Sichere Verschlüsselung? | Weitere Informationen | Hinweise |
---|---|---|---|
Öffentliche IP-Adresse mit SSL | Ja | SSL-Zertifikatsverwaltung erforderlich. | |
Öffentliche IP-Adresse ohne SSL | Nein | Nicht für Instanzen in der Produktionsumgebung empfohlen | |
Cloud SQL Proxy | Ja | ||
Cloud SQL Proxy-Docker-Image | Ja | ||
JDBC Socket-Bibliothek | Ja | Nur Programmiersprache Java. | |
Go-Proxy-Bibliothek | Ja | Nur Programmiersprache Go. | |
Cloud Shell | Nein | Verwendet den Cloud SQL-Proxy, um über die Google Cloud Console eine Verbindung herzustellen. Am besten für Verwaltungsaufgaben geeignet, bei denen das mysql -Befehlszeilentool benötigt wird. |
|
Apps Script | Ja | Apps Script kann Verbindungen zu externen Datenbanken über den JDBC-Dienst herstellen. Dies ist ein Wrapper für die Standardtechnologie der Java-Datenbankkonnektivität. |
Verbindung aus einer externen Anwendung über den Proxy herstellen
Zum Einrichten des Cloud SQL-Proxys für eine lokale Testumgebung (nicht für die Produktion) verwenden Sie anstelle dieser Anleitung die Proxy-Kurzanleitung.
Wenn Sie die Programmiersprache Java oder Go verwenden, gibt es Alternativen zur Verwendung des Cloud SQL-Proxys. Weitere Informationen
1. API aktivieren
Aktivieren Sie die Cloud SQL Admin API.2. Proxyclient auf einem lokalen Computer installieren
Linux 64-Bit
- Laden Sie den Proxy herunter:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
- Machen Sie den Proxy ausführbar:
chmod +x cloud_sql_proxy
Linux 32-Bit
- Laden Sie den Proxy herunter:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
- Machen Sie den Proxy ausführbar:
chmod +x cloud_sql_proxy
macOS 64-Bit
- Laden Sie den Proxy herunter:
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
- Machen Sie den Proxy ausführbar:
chmod +x cloud_sql_proxy
macOS 32-Bit
- Laden Sie den Proxy herunter:
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
- Machen Sie den Proxy ausführbar:
chmod +x cloud_sql_proxy
Windows 64-Bit
Klicken Sie mit der rechten Maustaste auf https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe, wählen Sie Link speichern unter aus und laden Sie den Proxy herunter. Benennen Sie die Datei incloud_sql_proxy.exe
um.
Windows 32-Bit
Klicken Sie mit der rechten Maustaste auf https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe, wählen Sie Link speichern unter aus und laden Sie den Proxy herunter. Benennen Sie die Datei incloud_sql_proxy.exe
um.
3. Authentifizierung des Proxys festlegen
Weitere Informationen zu den Proxy-Authentifizierungsoptionen
4. Dienstkonto erstellen (wenn für die Authentifizierungsmethode erforderlich)
Wenn Sie die Anmeldedaten für den Proxy mit einem Dienstkonto bereitstellen, müssen Sie es mit den erforderlichen Berechtigungen ausstatten. Wenn Sie detailliertere IAM-Rollen (Identity and Access Management) zum Verwalten Ihrer Cloud SQL-Berechtigungen verwenden möchten, müssen Sie dem Dienstkonto eine Rolle mit der Berechtigung "cloudsql.instances.connect" zuweisen. Diese Berechtigung ist in folgenden vordefinierten Cloud SQL-Rollen enthalten:
- Cloud SQL-Client
- Cloud SQL-Bearbeiter
- Cloud SQL-Administrator
Wenn Sie die Legacy-Projektrollen ("Betrachter", "Bearbeiter", "Inhaber") verwenden, muss das Dienstkonto mindestens die Rolle "Bearbeiter" haben.
- 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 in das Dialogfeld Dienstkonto erstellen einen aussagekräftigen Namen für das Dienstkonto ein.
- Wählen Sie unter Rolle eine der folgenden Rollen aus:
- Cloud SQL > Cloud SQL-Client
- Cloud SQL > Cloud SQL-Bearbeiter
- Cloud SQL > Cloud SQL-Administrator
Alternativ können Sie die einfache Rolle „Bearbeiter“ verwenden. Wählen Sie dazu Projekt > Bearbeiter aus. Allerdings gewährt die Rolle „Bearbeiter“ umfassende Berechtigungen in Google Cloud.
Wenn diese Rollen nicht angezeigt werden, kann es sein, dass Ihr Google Cloud-Nutzer nicht die Berechtigung
resourcemanager.projects.setIamPolicy
hat. Zum Prüfen Ihrer Berechtigungen rufen Sie in der Google Cloud Console die Seite "IAM" auf und suchen nach Ihrer Nutzer-ID. - Ändern Sie die Dienstkonto-ID in einen eindeutigen, erkennbaren Wert.
- Klicken Sie auf Neuen privaten Schlüssel bereitstellen und bestätigen Sie den Schlüsseltyp
JSON
. - Klicken Sie auf Erstellen.
Die Datei mit dem privaten Schlüssel wird auf Ihren Computer heruntergeladen. Sie können die Datei an einen anderen Speicherort verschieben. Es wird empfohlen, die Datei an einem sicheren Speicherort abzulegen.
5. Vorgehen für die Angabe der Instanzen für den Proxy festlegen
Weitere Informationen zu den Optionen der Instanzspezifikation für den Proxy.
6. Proxy starten
Die Optionen, die Sie an den Proxy übergeben, sind von den zuvor ausgewählten Optionen zur Authentifizierungs- und Instanzspezifikation abhängig.
Je nach verwendeter Programmiersprache und Umgebung können Sie den Proxy entweder mit TCP-Sockets oder mit Unix-Sockets starten.
TCP-Sockets
Kopieren Sie den Namen der Instanzverbindung auf der Seite Instanzdetails.
Beispiel:
myproject:myregion:myinstance
- Wenn Sie ein Dienstkonto zur Authentifizierung des Proxys verwenden, notieren Sie den Speicherort der zusammen mit dem Dienstkonto erstellten Datei mit dem privaten Schlüssel auf Ihrem Clientcomputer.
- Starten Sie den Proxy.
Im Folgenden sind einige mögliche Strings für den Proxyaufruf aufgeführt:
- Mit Cloud SDK-Authentifizierung:
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
Der angegebene Port darf nicht belegt sein (etwa durch einen lokalen Datenbankserver). - Mit einem Dienstkonto und unter expliziter Angabe des Namens der Instanzverbindung (empfohlen für Produktionsumgebungen):
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 \ -credential_file=<PATH_TO_KEY_FILE> &
Weitere Informationen zu Proxyoptionen finden Sie unter Authentifizierungsoptionen für den Cloud SQL-Proxy und Spezifikationsoptionen für Cloud SQL-Instanzen.
- Mit Cloud SDK-Authentifizierung:
Unix-Sockets
- Wenn Sie eine explizite Instanzspezifikation verwenden, kopieren Sie den Namen der Instanzverbindung von der Seite Instanzdetails.
- Erstellen Sie das Verzeichnis für die Proxy-Sockets:
sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
- Wenn Sie ein Dienstkonto zur Authentifizierung des Proxys verwenden, notieren Sie den Speicherort der Datei mit dem privaten Schlüssel, die zusammen mit dem Dienstkonto erstellt wurde, auf Ihrem Clientcomputer.
- Öffnen Sie ein neues Terminalfenster und starten Sie den Proxy.
Einige mögliche Proxy-Aufrufstrings:
- Mit einem Dienstkonto und unter expliziter Angabe des Namens der Instanzverbindung (empfohlen für Produktionsumgebungen):
./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> \ -credential_file=<PATH_TO_KEY_FILE> &
- Mit Cloud SDK-Authentifizierung und automatischer Instanzerkennung:
./cloud_sql_proxy -dir=/cloudsql &
Am besten starten Sie den Proxy in seinem eigenen Terminal. So können Sie seine Ausgabe überwachen, ohne dass diese mit der Ausgabe anderer Programme vermischt wird.
Weitere Informationen zu Proxyoptionen finden Sie unter Authentifizierungsoptionen für den Cloud SQL-Proxy und Spezifikationsoptionen für Cloud SQL-Instanzen.
- Mit einem Dienstkonto und unter expliziter Angabe des Namens der Instanzverbindung (empfohlen für Produktionsumgebungen):
-
Wenn Sie mit einem Unix-Socket eine Verbindung zu Cloud SQL über den Cloud SQL-Proxys herstellen, darf die Länge des Socket-Dateinamens das Limit des Systems nicht überschreiten. Dieses Limit hängt vom System ab, liegt aber in der Regel zwischen 91 und 108 Zeichen. Unter Linux beträgt die maximale Länge normalerweise 108 Zeichen. Mit diesem Befehl können Sie die Länge prüfen:
cat /usr/include/linux/un.h | grep "define UNIX_PATH_MAX"
7. Anwendung für die Herstellung einer Verbindung mit Cloud SQL über den Proxy aktualisieren
Die jeweils erforderliche Code-Anweisung, um mit dem Proxy eine Verbindung mit der Cloud SQL-Instanz herzustellen, hängt von der verwendeten Programmiersprache und vom verwendeten Framework ab.
Je nachdem, wie Sie den Proxy aufgerufen haben, stellen Sie eine Verbindung mit dem Proxy wie mit einem TCP- oder Unix-Socket her:TCP-Sockets
Bei TCP-Sockets steht der Proxy als lokaler Host zur Verfügung:
127.0.0.1:3306
Unix-Sockets
Bei Unix-Sockets steht der Proxy unter folgendem Pfad zur Verfügung:
PROXY_PATH/INSTANCE_CONNECTION_NAME;Dabei ist PROXY_PATH der Pfad zu dem Verzeichnis, das Sie mit der Option "-dir" beim Start des Proxys festgelegt haben. In den Beispielen dieser Dokumentation wird
/cloudsql
verwendet.
Sie finden den Verbindungsnamen Ihrer Instanz in der Google Cloud Console auf der Seite Instanzendetails. Alternativ können Sie PROJECT-ID:REGION:INSTANCE_NAME
verwenden.
Benötigen Sie Hilfe? Informationen zur Fehlerbehebung für den Proxy finden Sie unter Fehlerbehebung bei Cloud SQL-Proxyverbindungen. Weitere Informationen erhalten Sie auf der Cloud SQL-Supportseite.
Sprachspezifische Informationen und Beispiele
Sie können eine Verbindung mit dem Proxy mit jeder Sprache herstellen, die eine Verbindung zu Unix- oder TCP-Sockets ermöglicht. Im Folgenden finden Sie einige Beispiele zu Aufruf- und Verbindungsanweisungen für Proxys, die das Zusammenwirken in der Anwendung veranschaulichen.
.NET
Nachdem Sie den Proxy gestartet haben, bearbeiten Sie die Datei appsettings.json
und definieren unter CloudSql:ConnectionString
einen Verbindungsstring.
Beispiel:
{ "CloudSQL" : { ConnectionString": "Host=127.0.0.1;Uid=DATABASE_USER;Pwd=PASSWORD;Database=DATABASE_NAME" } }
Erstellen Sie dann in der Datei Startup.cs
eine Datenbankverbindung:
Go
Mit der Programmiersprache Go können Sie den Cloud SQL-Proxy auf zwei Arten verwenden:
- Go-Proxybibliothek verwenden
- Ausführen des Proxys als Begleitprozess
Go-Proxybibliothek
Diese Bibliothek bietet die einfachste Möglichkeit, eine Verbindung zu Cloud SQL über ein Go-Programm herzustellen, da Sie damit den Proxy nicht explizit als eigenen Prozess starten müssen.
import ( "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql" ) ... cfg := mysql.Cfg(INSTANCE_CONNECTION_NAME, DATABASE_USER, PASSWORD) cfg.DBName = DATABASE_NAME db, err := mysql.DialCfg(cfg)
Weitere Informationen finden Sie auf der GitHub-Seite für den Cloud SQL-Proxy.
Begleitprozess
Sie können den Proxy auch als Begleitprozess ausführen und eine Verbindung zum Proxy über die Anwendung herstellen.
Die folgenden Aufrufanweisungen für Proxys verwenden der Einfachheit halber die lokale Cloud SDK-Authentifizierung. Ihre Aufrufanweisung kann davon abweichen, je nachdem, welche Optionen Sie für die Authentifizierung und die Spezifikation der Instanz ausgewählt haben. Weitere Informationen finden Sie unter Authentifizierungsoptionen für Cloud SQL Proxy.
TCP-Sockets
Aufrufanweisung für den Proxy:
./cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306 &
Verbindungsanweisung:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s", DATABASE_USER, PASSWORD, "127.0.0.1:3306", DATABASE_NAME) db, err := sql.Open("mysql", dsn)
Unix-Sockets
Aufrufanweisung für den Proxy:
./cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME] -dir=/cloudsql &
Verbindungsanweisung:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) dsn := fmt.Sprintf("%s:%s@unix(/cloudsql/%s)/%s", DATABASE_USER, PASSWORD, INSTANCE_CONNECTION_NAME, DATABASE_NAME) db, err := sql.Open("mysql", dsn)
Java
Die Programmiersprache Java bietet keine integrierte Unterstützung für Unix-Sockets. Sie können für den Cloud SQL-Proxy stattdessen TCP-Sockets oder eine Bibliothek mit Unterstützung für Unix-Sockets verwenden. Die einfachste Methode zum Herstellen einer Verbindung zu einer Cloud SQL-Instanz ohne Hinzufügen autorisierter Netzwerkadressen ist jedoch die Verwendung der JDBC Socket Factory.
Die JDBC Socket Factory ist eine Alternative zur clientseitigen Proxysoftware. Dazu muss wie beim Cloud SQL-Proxy die Cloud SQL Admin API aktiviert sein. Die Socket Factory bietet die gleiche Verschlüsselungsstufe wie der Proxy und wird anhand der Cloud SDK-Anmeldedaten authentifiziert. Für die Verwendung der Socket Factory müssen Sie das Cloud SDK installieren und authentifizieren.
Codebeispiele finden Sie unter Cloud SQL Socket Factory für JDBC-Treiber. Eine Anleitung dazu erhalten Sie unter README.
PHP
PDO und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit PHP-Datenobjekten (PDO) herstellen:
// Use a Data source name (DSN) to connect to Cloud SQL through the proxy $dsn = 'mysql:host=127.0.0.1;port=3306;dbname=DATABASE_NAME'; // Instantiate your DB using the DSN, username, and password $dbUser = 'DATABASE_USER'; $dbPass = 'PASSWORD'; $db = new PDO($dsn, $dbUser, $dbPass);
PDO- und Unix-Sockets
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit PDO herstellen:
// Use a Data source name (DSN) to connect to Cloud SQL through the proxy $dsn = sprintf('mysql:unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME;dbname=DATABASE_NAME'; // Instantiate your DB using the DSN, username, and password $dbUser = 'DATABASE_USER'; $dbPass = 'PASSWORD'; $db = new PDO($dsn, $dbUser, $dbPass);
mysqli und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit mysqli herstellen:
// Instantiate your DB using the database host, port, name, username, and password $dbName = 'DATABASE_NAME'; $dbUser = 'DATABASE_USER'; $dbPass = 'PASSWORD'; $mysqli = new mysqli('127.0.0.1', $dbUser, $dbPass, $dbName, 3306);
mysqli und Unix-Sockets
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit mysqli herstellen:
// Instantiate your DB using the database name, socket, username, and password $dbName = 'DATABASE_NAME'; $dbUser = 'DATABASE_USER'; $dbPass = 'PASSWORD'; $dbSocket = '/cloudsql/INSTANCE_CONNECTION_NAME'; $mysqli = new mysqli(null, $dbUser, $dbPass, $dbName, null, $dbSocket);
Python
Die folgenden Aufrufanweisungen für Proxys verwenden der Einfachheit halber die lokale Cloud SDK-Authentifizierung. Ihre Aufrufanweisung kann davon abweichen, je nachdem, welche Optionen Sie für die Authentifizierung und die Spezifikation der Instanz ausgewählt haben. Weitere Informationen
PyMySQL und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Verbindungsanweisung:
import pymysql connection = pymysql.connect(host='127.0.0.1', user='DATABASE_USER', password='PASSWORD', db='DATABASE_NAME')
PyMySQL und Unix
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Verbindungsanweisung:
import pymysql connection = pymysql.connect(unix_socket='/cloudsql/' + INSTANCE_CONNECTION_NAME, user='DATABASE_USER', password='PASSWORD', db='DATABASE_NAME')
SQLAlchemy und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Verbindungsanweisung:
from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://DATABASE_USER:PASSWORD@127.0.0.1/DATABASE_NAME')
SQLAlchemy und Unix
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Verbindungsanweisung:
from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://DATABASE_USER:PASSWORD@/DATABASE_NAME?unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME')
Ruby
mysql2 und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit dem RubyGem mysql2 herstellen:
require "mysql2" client = Mysql2::Client.new host: "127.0.0.1", port: 3306, database: "DATABASE_NAME", username: "DATABASE_USER", password: "PASSWORD"
mysql2 und Unix-Sockets
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Die folgenden Beispiele zeigen, wie Sie eine Verbindung zu Cloud SQL mit dem RubyGem mysql2 herstellen:
require "mysql2" client = Mysql2::Client.new socket: "/cloudsql/CONNECTION_NAME", database: "DATABASE_NAME", username: "DATABASE_USER", password: "PASSWORD"
Rails und TCP
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &
Legen Sie in config/databases.yml
folgende Konfiguration fest:
mysql_settings: &mysql_settings adapter: mysql2 encoding: utf8 pool: 5 username: DATABASE_USER password: PASSWORD database: DATABASE_NAME host: 127.0.0.1:3306
Rails und Unix-Sockets
Rufen Sie den Proxy auf:
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &
Legen Sie in config/databases.yml
folgende Konfiguration fest:
mysql_settings: &mysql_settings adapter: mysql2 encoding: utf8 pool: 5 username: DATABASE_USER password: PASSWORD database: DATABASE_NAME socket: /cloudsql/INSTANCE_CONNECTION_NAME
Zugriff auf öffentliche IP-Verbindungen konfigurieren
Sie können Anwendungen den Zugriff auf eine Cloud SQL-Instanz gewähren. Dazu autorisieren Sie die öffentlichen IP-Adressen, die die Anwendung für das Herstellen der Verbindung verwendet.
Sie können kein privates Netzwerk (beispielsweise 10.x.x.x) als autorisiertes Netzwerk angeben.
Öffentliche IP-Adressen für MySQL-Instanzen:
- IPv6: Instanzen unterstützen IPv6 nicht.
- IPv4: Instanzen wird automatisch eine statische IPv4-Adresse zugewiesen. Auch wenn die Instanz deaktiviert ist, fällt jeweils eine geringe Gebühr für die IP-Adresse an.
So konfigurieren Sie den Zugriff über öffentliche IP-Verbindungen:
Console
- Ermitteln Sie die IP-Adresse der Anwendung. Weitere Informationen
- Autorisieren Sie die IP-Adresse der Anwendung für die Verbindung mit der Instanz.
Weitere Informationen finden Sie unter Öffentliche IP-Adresse aktivieren und autorisierte Adressen oder einen autorisierten Adressbereich hinzufügen.
- Die IP-Adressen, die der Instanz zugewiesen wurden, finden Sie auf der Seite Instanzdetails. Sie benötigen diesen Wert für den Verbindungsstring der Anwendung.
gcloud
- Ermitteln Sie die IP-Adresse des Clientcomputers. Weitere Informationen
- Autorisieren Sie die IP-Adresse der Anwendung für die Verbindung mit der Instanz.
Weitere Informationen finden Sie unter Öffentliche IP-Adresse aktivieren und autorisierte Adressen oder einen autorisierten Adressbereich hinzufügen.
- Rufen Sie die IP-Adresse für die Instanz ab:
gcloud sql instances describe [INSTANCE_NAME]
Ermitteln Sie in der Ausgabe das Feld
ipAddress
. Sie benötigen diesen Wert für den Verbindungsstring der Anwendung.
REST v1beta4
- Ermitteln Sie die IP-Adresse der Anwendung. Weitere Informationen
- Autorisieren Sie die IP-Adresse der Anwendung für die Verbindung mit der Instanz.
Weitere Informationen finden Sie unter Öffentliche IP-Adresse aktivieren und autorisierte Adressen oder einen autorisierten Adressbereich hinzufügen.
- Rufen Sie die IP-Adresse für die Instanz ab:
Geben Sie für die Parameter folgende Werte an:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_5_7", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "asia-east1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "08:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "13", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "etag-id", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "0", "cert": "certificate-id", "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id", "sha1Fingerprint": "sha-id", "instance": "instance-id", "createTime": "2019-06-28T22:46:35.052Z", "expirationTime": "2029-06-25T22:47:35.052Z" }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "asia-east1", "gceZone": "asia-east1-a" }
Notieren Sie sich den Wert für
ipAddresses.ipAddress
(für IPv4). Sie benötigen diesen Wert für den Verbindungsstring der Anwendung.
Benötigen Sie Hilfe? Informationen zur Fehlerbehebung für den Proxy finden Sie unter Fehlerbehebung bei Cloud SQL-Proxyverbindungen. Weitere Informationen finden Sie auf der Cloud SQL-Supportseite.
Zugriff auf Anwendungen mit dynamisch zugewiesenen IP-Adressen konfigurieren
Einige Anwendungen benötigen für das Herstellen einer Verbindung zur Cloud SQL-Instanz eine dynamisch zugewiesene oder sitzungsspezifische IP-Adresse. Dies ist u. a. bei PaaS-Anwendungen (Platform as a Service) der Fall.
Die beste Lösung für diese Anwendungen ist eine Verbindung über den Cloud SQL-Proxy. Diese Lösung bietet die optimale Zugriffssteuerung für die Instanz.
Verbindung testen
Sie können mit dem MySQL-Client das Herstellen einer Verbindung von der lokalen Umgebung testen. Weitere Informationen dazu finden Sie unter MySQL-Client über eine öffentliche IP-Adresse verbinden und MySQL-Client über den Cloud SQL-Proxy verbinden.
Benötigen Sie Hilfe? Informationen zur Fehlerbehebung für den Proxy finden Sie unter Fehlerbehebung bei Cloud SQL-Proxyverbindungen. Weitere Informationen finden Sie auf der Cloud SQL-Supportseite.
IP-Adresse für die Anwendung ermitteln
Sie können die IP-Adresse eines Computers ermitteln, auf dem die Anwendung ausgeführt wird, und dann den Zugriff auf die Cloud SQL-Instanz über diese Adresse autorisieren. Verwenden Sie dazu eine der folgenden Methoden:
- Wenn sich der Computer nicht hinter einem Proxy befindet, melden Sie sich beim Computer an und ermitteln Sie dessen IP-Adresse über diesen Link.
- Wenn sich der Computer hinter einem Proxy befindet, melden Sie sich beim Computer an und ermitteln die tatsächliche IP-Adresse mit einem Tool oder Dienst wie whatismyipaddress.com.
Weitere Informationen
- Datenbankverbindungen in der Anwendung verwalten
- Mehr über Verbindungsoptionen für externe Anwendungen erfahren
- MySQL-Client über eine öffentliche IP-Adresse verbinden
- Öffentliche IP-Verbindungen konfigurieren
- Verbindung mithilfe anderer MySQL-Tools herstellen
- MySQL-Connectors
- Mehr über Proxys erfahren
- Mehr über Supportoptionen erfahren