Auf dieser Seite wird gezeigt, wie Sie eine öffentliche IP-Verbindung für eine Cloud SQL-Instanz konfigurieren.
Einleitung
Sie können Ihre Cloud SQL-Instanz für eine öffentliche IPv4-Adresse konfigurieren und autorisierte Adressen für Verbindungen von bestimmten IP-Adressen oder von einem Adressbereich hinzufügen.
Sie können kein privates Netzwerk (beispielsweise 10.x.x.x) als autorisiertes Netzwerk angeben.
Öffentliche IP-Adressen für SQL Server-Instanzen:
IPv6: Instanzen unterstützen IPv6 nicht.
IPv4: Instanzen wird automatisch eine statische IPv4-Adresse zugewiesen. Wenn die Instanz deaktiviert ist, fällt jeweils eine geringe Gebühr für die IP-Adresse an.
Informationen zur Verbindung eines Verwaltungsclients mit der Instanz über eine IP-Verbindung finden Sie unter sqlcmd-Client über IP-Adressen verbinden .
Wenn Sie die Instanz so konfigurieren, dass Verbindungen über eine öffentliche IP-Adresse angenommen werden, sollten Sie auch die Verwendung von SSL festlegen, um Ihre Daten zu schützen. Weitere Informationen finden Sie unter SSL für Instanzen konfigurieren .
Informationen zur Konfiguration der Instanz mit einer IP-Adresse, die nicht über das öffentliche Internet zugänglich ist, finden Sie unter Private IP-Verbindung konfigurieren .
Öffentliche IP-Adresse aktivieren und autorisierte Adressen oder einen autorisierten Adressbereich hinzufügen
Wenn Sie die öffentliche IP-Adresse für Ihre Instanz aktivieren, konfiguriert Cloud SQL die Instanz mit einer öffentlichen statischen IPv4-Adresse. Nachdem Sie öffentliche IP-Adressen aktiviert haben, müssen Sie eine Autorisierung für Datenbankverbindungen einrichten. Weitere Informationen finden Sie unter Autorisierungsoptionen .
So aktivieren Sie eine öffentliche IP-Adresse und fügen eine autorisierte Adresse hinzu:
Console
Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
Zur Seite „Cloud SQL-Instanzen“
Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
Wählen Sie den Tab Verbindungen aus.
Wählen Sie das Kästchen Öffentliche IP-Adressen aus.
Klicken Sie auf Netzwerk hinzufügen .
Geben Sie im Feld Netzwerk die IP-Adresse oder den Adressbereich ein, von dem aus Sie Verbindungen zulassen möchten.
Verwenden Sie die CIDR-Notation .
Geben Sie optional einen Namen für diesen Eintrag ein.
Klicken Sie auf Fertig .
Klicken Sie auf Speichern , um die Instanz zu aktualisieren.
gcloud
Falls noch nicht geschehen, weisen Sie der Instanz eine IPv4-Adresse zu:
gcloud sql instances patch [INSTANCE_NAME] --assign-ip
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:
gcloud sql instances describe [INSTANCE_NAME]
Suchen Sie unter ipConfiguration nach authorizedNetwork -Einträgen und notieren Sie alle autorisierten Adressen, die Sie behalten möchten.
Aktualisieren Sie die Liste der autorisierten Netzwerke einschließlich aller Adressen, die darin enthalten sein sollen.
gcloud sql instances patch [INSTANCE_NAME] --authorized-networks=[IP_ADDR1],[IP_ADDR2]...
Verwenden Sie die CIDR-Notation .
Bestätigen Sie Ihre Änderungen:
gcloud sql instances describe [INSTANCE_NAME]
Wenn Sie eine autorisierte Adresse entfernen, werden bestehende Verbindungen von dieser Adresse nicht getrennt. Wenn Sie bestehende Verbindungen trennen möchten, müssen Sie die Instanz neu starten .
REST v1beta4
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type ",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks": [],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Aktualisieren Sie die Instanz einschließlich aller Adressen, die Sie für die Instanz festlegen möchten:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
network_range_1 : eine autorisierte IP-Adresse oder ein autorisierter IP-Bereich
network_range_2 : eine weitere autorisierte IP-Adresse oder ein weiterer autorisierter IP-Bereich
HTTP-Methode und URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON-Text anfordern:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1 "}, {"value": network_range_2 "}]
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"kind": "sql#operation",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Verwenden Sie die CIDR-Notation .
Bestätigen Sie Ihre Änderungen:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
ip-address1 : die erste IP-Adresse in CIDR-Notation
ip-address-name1 : der Name der ersten IP-Adresse
ip-address2 : die zweite IP-Adresse in CIDR-Notation
ip-address-name2 : der Name der zweiten IP-Adresse
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type 4",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks":
[
{
"value": "ip-address1 ",
"name": "ip-address-name1 ",
"kind": "sql#aclEntry"
},
{
"value": "ip-address2 ",
"name": "ip-address-name2 ",
"kind": "sql#aclEntry"
}
],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Wenn Sie eine autorisierte Adresse entfernen, werden bestehende Verbindungen von dieser Adresse nicht getrennt. Wenn Sie bestehende Verbindungen trennen möchten, müssen Sie die Instanz neu starten .
Autorisierte Adresse oder autorisierten Adressbereich entfernen
So entfernen Sie eine autorisierte Adresse:
Console
Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
Zur Seite „Cloud SQL-Instanzen“
Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
Wählen Sie den Tab Verbindungen aus.
Klicken Sie für die Adresse, die Sie löschen möchten, auf das Papierkorbsymbol .
Klicken Sie auf Speichern , um die Instanz zu aktualisieren.
gcloud
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:
gcloud sql instances describe [INSTANCE_NAME]
Suchen Sie unter ipConfiguration nach authorizedNetwork -Einträgen und notieren Sie alle autorisierten Adressen, die Sie behalten möchten.
Aktualisieren Sie die Liste der autorisierten Netzwerke, indem Sie alle Adressen trennen, die Sie entfernen möchten.
gcloud sql instances patch [INSTANCE_NAME] --authorized-networks=[IP_ADDR1],[IP_ADDR2]...
Bestätigen Sie Ihre Änderungen:
gcloud sql instances describe [INSTANCE_NAME]
REST v1beta4
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
ip-address1 : die erste IP-Adresse in CIDR-Notation
ip-address-name1 : der Name der ersten IP-Adresse
ip-address2 : die zweite IP-Adresse in CIDR-Notation
ip-address-name2 : der Name der zweiten IP-Adresse
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type 4",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks":
[
{
"value": "ip-address1 ",
"name": "ip-address-name1 ",
"kind": "sql#aclEntry"
},
{
"value": "ip-address2 ",
"name": "ip-address-name2 ",
"kind": "sql#aclEntry"
}
],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Aktualisieren Sie die Instanz und geben Sie dabei alle Adressen an, die Sie behalten möchten, bzw. löschen Sie alle Adressen, die Sie entfernen möchten:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
network_range_1 : die zu entfernende autorisierte IP-Adresse oder der zu entfernende autorisierte Netzwerkbereich
HTTP-Methode und URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON-Text anfordern:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1 "}]
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"kind": "sql#operation",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Bestätigen Sie Ihre Änderungen:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
ip-address : die IP-Adresse in CIDR-Notation
ip-address-name : der Name der IP-Adresse
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type ",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks":
[
{
"value": "ip-address ",
"name": "ip-address-name ",
"kind": "sql#aclEntry"
}
],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Wenn Sie eine autorisierte Adresse entfernen, werden bestehende Verbindungen von dieser Adresse nicht getrennt. Wenn Sie bestehende Verbindungen trennen möchten, müssen Sie die Instanz neu starten .
Alle öffentlichen IP-Verbindungen ablehnen
Sie können Instanzen so konfigurieren, dass alle öffentlichen IP-Verbindungen abgelehnt werden:
Console
Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
Zur Seite „Cloud SQL-Instanzen“
Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
Wählen Sie den Tab Verbindungen aus.
Klicken Sie für alle autorisierten Adressen auf den Papierkorb .
Klicken Sie auf Speichern , um die Instanz zu aktualisieren.
gcloud
Löschen Sie die Liste autorisierter Adressen:
gcloud sql instances patch [INSTANCE_NAME] --clear-authorized-networks
Bestätigen Sie Ihre Änderungen:
gcloud sql instances describe [INSTANCE_NAME]
REST v1beta4
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
ip-address1 : die erste IP-Adresse in CIDR-Notation
ip-address-name1 : der Name der ersten IP-Adresse
ip-address2 : die zweite IP-Adresse in CIDR-Notation
ip-address-name2 : der Name der zweiten IP-Adresse
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type 4",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks":
[
{
"value": "ip-address1 ",
"name": "ip-address-name1 ",
"kind": "sql#aclEntry"
},
{
"value": "ip-address2 ",
"name": "ip-address-name2 ",
"kind": "sql#aclEntry"
}
],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Aktualisieren Sie die Instanz mit einer leeren Adressliste:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
HTTP-Methode und URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON-Text anfordern:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks": []
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"kind": "sql#operation",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Bestätigen Sie Ihre Änderungen:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type ",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks": [],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Wenn Sie eine autorisierte Adresse entfernen, werden bestehende Verbindungen von dieser Adresse nicht getrennt. Wenn Sie bestehende Verbindungen trennen möchten, müssen Sie die Instanz neu starten .
Öffentliche IP-Adressen deaktivieren
Sie können öffentliche IP-Adressen deaktivieren, aber nur, wenn Ihre Instanz auch für die Verwendung privater IP-Adressen konfiguriert ist.
Informationen zum Aktivieren einer privaten IP finden Sie unter Bestehende Instanz für die Verwendung einer privaten IP-Adresse konfigurieren .
Hinweis: Wenn Sie öffentliche IP-Adressen für eine Instanz deaktivieren, wird die jeweilige IPv4-Adresse freigegeben.
Sollten Sie die öffentliche IP-Adresse für diese Instanz später wieder aktivieren, erhält sie eine andere IPv4-Adresse. Alle Anwendungen, die diese öffentliche IP-Adresse für das Herstellen einer Verbindung zur Instanz verwenden, müssen dann entsprechend geändert werden.
So deaktivieren Sie öffentliche IP-Adressen:
Console
Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
Zur Seite „Cloud SQL-Instanzen“
Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
Wählen Sie den Tab Verbindungen aus.
Heben Sie die Auswahl des Kästchens Öffentliche IP-Adressen auf.
Klicken Sie auf Speichern , um die Instanz zu aktualisieren.
gcloud
Aktualisieren Sie die Instanz:
gcloud sql instances patch [INSTANCE_NAME] --no-assign-ip
Bestätigen Sie Ihre Änderungen:
gcloud sql instances describe [INSTANCE_NAME]
REST v1beta4
Indem Sie die Instanz beschreiben, zeigen Sie alle vorhandenen autorisierten Adressen an:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
ip-address1 : die erste IP-Adresse in CIDR-Notation
ip-address-name1 : der Name der ersten IP-Adresse
ip-address2 : die zweite IP-Adresse in CIDR-Notation
ip-address-name2 : der Name der zweiten IP-Adresse
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type 4",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks":
[
{
"value": "ip-address1 ",
"name": "ip-address-name1 ",
"kind": "sql#aclEntry"
},
{
"value": "ip-address2 ",
"name": "ip-address-name2 ",
"kind": "sql#aclEntry"
}
],
"ipv4Enabled": true
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Aktualisieren Sie die Instanz:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
HTTP-Methode und URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON-Text anfordern:
{
"settings":
{
"ipConfiguration": {"ipv4Enabled": false}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"kind": "sql#operation",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Bestätigen Sie Ihre Änderungen:Geben Sie für die Parameter folgende Werte an:
project-id : die Projekt-ID
instance-id : die Instanz-ID
machine-type : der Instanzmaschinentyp
zone : die Instanzzone
HTTP-Methode und URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings
PowerShell (Windows)
Hinweis: Der folgende Befehl setzt voraus, dass Sie entweder gcloud init
oder gcloud auth login
verwendet haben, um gcloud
mit Ihrem Nutzerkonto zu authentifizieren.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri " https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=settings" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{
"settings":
{
"authorizedGaeApplications": [],
"tier": "machine-type ",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration":
{
"privateNetwork": "projects/project-id /global/networks/default",
"authorizedNetworks": [],
"ipv4Enabled": false
},
"locationPreference":
{
"zone": "zone ",
"kind": "sql#locationPreference"
},
"dataDiskType": "PD_SSD",
"maintenanceWindow":
{
"kind": "sql#maintenanceWindow",
"hour": 0,
"day": 0
},
"backupConfiguration":
{
"startTime": "03:00",
"kind": "sql#backupConfiguration",
"enabled": true,
"binaryLogEnabled": true
},
"settingsVersion": "54",
"storageAutoResizeLimit": "0",
"storageAutoResize": true,
"dataDiskSizeGb": "10"
}
}
Fehlerbehebung
Klicken Sie auf die Links in der Tabelle, um weitere Informationen zu erhalten:
Verbindung abgebrochen
Sie sehen die Fehlermeldung Got an error reading communication packets
oder Aborted connection xxx to db: DB_NAME
.
Mögliche Ursache
Netzwerk instabil.
Keine Antwort auf TCP-Keep-Alive-Befehle (entweder der Client oder der Server reagiert nicht, möglicherweise überlastet).
Die Verbindungsdauer des Datenbankmoduls wurde überschritten und der Server hat die Verbindung beendet.
Lösungsvorschlag
Anwendungen sollten Netzwerkfehler tolerieren und gemäß den Best Practices mit Verbindungs-Pooling und Wiederholungsversuchen arbeiten. Die meisten Verbindungs-Pooler erfassen diese Fehler nach Möglichkeit. Andernfalls sollte die Anwendung einen Wiederholungsversuch ausführen oder ordnungsgemäß fehlschlagen.
Für den erneuten Verbindungsversuch empfehlen wir die folgenden Methoden:
Exponentieller Backoff. Erhöhen Sie das Zeitintervall zwischen den einzelnen Wiederholungen exponentiell.
Fügen Sie auch einen zufälligen Backoff hinzu. Durch die Kombination dieser Methoden wird die Drosselung reduziert.
Keine Autorisierung für Verbindung
Folgende Fehlermeldung ist zu sehen: Unauthorized to connect
.
Mögliche Ursache
Da die Autorisierung auf mehreren Ebenen erfolgt, kann dies verschiedene Ursachen haben.
Auf Datenbankebene muss der Datenbanknutzer vorhanden sein und sein Passwort muss übereinstimmen.
Auf Projektebene fehlen dem Nutzer möglicherweise die richtigen IAM-Berechtigungen.
Auf Cloud SQL-Ebene kann die Ursache davon abhängen, wie Sie eine Verbindung zu Ihrer Instanz herstellen. Wenn Sie über die öffentliche IP-Adresse eine direkte Verbindung zu einer Instanz herstellen, muss sich die Quell-IP-Adresse der Verbindung im autorisierten Netzwerk der Instanz befinden.
Private IP-Verbindungen sind standardmäßig zulässig, es sei denn, Sie stellen eine Verbindung von einer Adresse außerhalb des RFC 1918-Bereichs her.
Clientadressen außerhalb des RFC 1918-Bereichs müssen als autorisierte Netzwerke konfiguriert sein.
Cloud SQL erkennt standardmäßig keine Subnetzrouten außerhalb des RFC 1918-Bereichs von Ihrer VPC. Sie müssen deshalb das Netzwerk-Peering auf Cloud SQL aktualisieren, um alle Routen außerhalb des RFC 1918-Bereichs exportieren zu können. Beispiel:
gcloud compute networks peerings update cloudsql-mysql-googleapis-com --network=NETWORK --export-subnet-routes-with-public-ip --project=PROJECT
Wenn Sie eine Verbindung über den Cloud SQL Proxy herstellen, sollten Sie darauf achten, dass die IAM-Berechtigungen korrekt festgelegt sind.
Wenn die Cloud SQL-Instanz auf Netzwerkebene öffentliche IP-Adressen verwendet, muss sich die Quell-IP-Adresse der Verbindung in einem autorisierten Netzwerk befinden.
Lösungsvorschlag
Prüfen Sie das Passwort und den Nutzernamen.
Prüfen Sie die IAM-Rollen und -Berechtigungen des Nutzers.
Wenn Sie eine öffentliche IP-Adresse verwenden, achten Sie darauf, dass sich die Quelle in den autorisierten Netzwerken befindet.
Netzwerkzuordnung fehlgeschlagen
Sie sehen die Fehlermeldung Error: Network association failed due to the
following error
: Weisen Sie dem Dienstnetzwerk-Dienstkonto die Rolle servicenetworking.serviceAgent
für das Nutzerprojekt zu.
Mögliche Ursache
Die Service Networking API
ist im Projekt nicht aktiviert.
Lösungsvorschlag
Aktivieren Sie die Service Networking API
in Ihrem Projekt. Ist dieser Fehler zu sehen, wenn Sie einer Cloud SQL-Instanz eine private IP-Adresse zuweisen und eine freigegebene VPC verwenden, müssen Sie auch die Service Networking API
für das Hostprojekt aktivieren.
Verbleibende Verbindungsslots sind reserviert
Folgende Fehlermeldung ist zu sehen: FATAL: remaining connection slots are reserved for
non-replication superuser connections
.
Mögliche Ursache
Die maximale Anzahl von Verbindungen wurde erreicht.
Lösungsvorschlag
Bearbeiten Sie den Wert des Flags max_connections
.
Dem Dienstnetzwerk-Dienstkonto die Rolle "servicenetworking.serviceAgent" für das Nutzerprojekt zuweisen
Die Fehlermeldung set Service Networking service account as
servicenetworking.serviceAgent role on consumer project.
wird angezeigt.
Mögliche Ursache
Das Service Networking-Dienstkonto ist nicht an die Rolle servicenetworking.serviceAgent
gebunden.
Hinweis: Das Format des Service Networking-Dienstkontos ist service-{project number}@service-networking.iam.gserviceaccount.com
Lösungsvorschlag
Versuchen Sie, dieses Problem zu beheben. Verwenden Sie dazu diese gcloud
-Befehle, um das Service Networking-Dienstkonto an die Rolle servicenetworking.serviceAgent
zu binden.
gcloud beta services identity create --service=servicenetworking.googleapis.com --project=project-id
gcloud projects add-iam-policy-binding project-id --member="serviceAccount:service-project-number @service-networking.iam.gserviceaccount.com" --role="roles/servicenetworking.serviceAgent"
Fehler x509: certificate is not valid for any names
Die Fehlermeldung error x509: certificate is not valid for any
names, but wanted to match project-name:db-name
wird angezeigt.
Mögliche Ursache
Bekanntes Problem: Der Cloud SQL-Proxy-Dialer ist derzeit nicht mit Go 1.15 kompatibel.
Lösungsvorschlag
Bis zur Behebung dieses Fehlers finden Sie in dieser Diskussion auf GitHub eine Problemumgehung.
Auf einigen Betriebssystemen können keine Zertifikate geparst werden.
Wenn Sie x509-Bibliotheken von mac OS 11.0 (Big Sur) verwenden, können die Zertifikate von MySQL-Instanzen möglicherweise nicht geparst werden. Dies kann als allgemeiner Fehler zu sehen sein, wie z. B. „Abgebrochen“.
Lösungsvorschlag
Der Fehler ist behoben und bei neuen Instanzen tritt dieses Problem nicht auf. Wenn dieses Problem bei alten Instanzen auftritt, rotieren Sie das Serverzertifikat und erstellen Sie die Clientzertifikate neu .
Hinweis: Die Rotation des Zertifikats führt zu einem kurzen Ausfall der Verbindung.
Die zugewiesenen Bereiche können in CreateConnection nicht geändert werden. Verwenden Sie UpdateConnection
Die Fehlermeldung Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection
wird angezeigt.
Mögliche Ursache
Wenn ein Bereich reserviert und dann entfernt wurde, wird auch die private Verbindung entfernt. Dieser Fehler tritt auf, wenn Sie versuchen, eine Verbindung zu einem anderen reservierten Bereich herzustellen, ohne zuvor die private Verbindung neu zu erstellen.
Lösungsvorschlag
Sie müssen die private Verbindung neu erstellen .
Verwenden Sie dazu den folgenden Befehl mit dem Argument --force
:
gcloud services vpc-peerings update --network=VPC_NETWORK --ranges=ALLOCATED_RANGES --service=servicenetworking.googleapis.com --force
Nächste Schritte