Verbindung zu Cloud SQL von externen Anwendungen aus herstellen

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.

Aktivieren Sie die API

2. Proxyclient auf einem lokalen Computer installieren

Linux 64-Bit

  1. Laden Sie den Proxy herunter:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  2. Machen Sie den Proxy ausführbar:
    chmod +x cloud_sql_proxy
    

Linux 32-Bit

  1. Laden Sie den Proxy herunter:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
    
  2. Machen Sie den Proxy ausführbar:
    chmod +x cloud_sql_proxy
    

macOS 64-Bit

  1. Laden Sie den Proxy herunter:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
    
  2. Machen Sie den Proxy ausführbar:
    chmod +x cloud_sql_proxy
    

macOS 32-Bit

  1. Laden Sie den Proxy herunter:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
    
  2. 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 in cloud_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 in cloud_sql_proxy.exe um.
Wenn Ihr Betriebssystem hier nicht aufgeführt ist, können Sie auch den Proxy aus der Quelle kompilieren.

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.

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

    Zur Seite "Dienstkonten"

  2. Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie in das Dialogfeld Dienstkonto erstellen einen aussagekräftigen Namen für das Dienstkonto ein.
  5. 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.

  6. Ändern Sie die Dienstkonto-ID in einen eindeutigen, erkennbaren Wert.
  7. Klicken Sie auf Neuen privaten Schlüssel bereitstellen und bestätigen Sie den Schlüsseltyp JSON.
  8. 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

  1. Kopieren Sie den Namen der Instanzverbindung auf der Seite Instanzdetails.

    Beispiel: myproject:myregion:myinstance

  2. 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.
  3. 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.

Unix-Sockets

  1. Wenn Sie eine explizite Instanzspezifikation verwenden, kopieren Sie den Namen der Instanzverbindung von der Seite Instanzdetails.
  2. Erstellen Sie das Verzeichnis für die Proxy-Sockets:
    sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
  3. 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.
  4. Ö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.

  5. 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:

var connectionString = new MySqlConnectionStringBuilder(
    Configuration["CloudSql:ConnectionString"])
{
    // Connecting to a local proxy that does not support ssl.
    SslMode = MySqlSslMode.None,
};
DbConnection connection =
    new MySqlConnection(connectionString.ConnectionString);

Go

Mit der Programmiersprache Go können Sie den Cloud SQL-Proxy auf zwei Arten verwenden:

  1. Go-Proxybibliothek verwenden
  2. 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

  1. Ermitteln Sie die IP-Adresse der Anwendung. Weitere Informationen
  2. 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.

  3. 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

  1. Ermitteln Sie die IP-Adresse des Clientcomputers. Weitere Informationen
  2. 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.

  3. 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

  1. Ermitteln Sie die IP-Adresse der Anwendung. Weitere Informationen
  2. 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.

  3. 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