Instanzen erstellen

Auf dieser Seite wird gezeigt, wie Sie eine Cloud SQL-Instanz für eine MySQL-Instanz erstellen.

Ausführliche Informationen zu allen Instanzeinstellungen finden Sie unter Instanzeinstellungen.

Beim Erstellen einer Instanz wird der Instanz eine einzelne Datenbank hinzugefügt. Sie können weitere Datenbanken einfügen, indem Sie sie erstellen oder importieren.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Installieren und initialisieren Sie das Cloud SDK.
  5. Achten Sie darauf, dass Sie für Ihr Nutzerkonto die Rollen "Cloud SQL-Administrator" und "Compute-Betrachter" haben.

    Zur IAM-Seite

    Weitere Informationen zu Rollen und Berechtigungen

MySQL-Instanz erstellen

So erstellen Sie eine MySQL-Instanz:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite „Cloud SQL-Instanzen“

  2. Klicken Sie auf Instanz erstellen.
  3. Wählen Sie MySQL aus und klicken Sie auf Weiter.
  4. Geben Sie einen Namen ein.

    Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.

    Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

  5. Geben Sie das Passwort für den Nutzer 'root'@'%' ein.
  6. Wählen Sie unter Standort die Region und die Zone für Ihre Instanz aus.

    Platzieren Sie die Instanz in der Region, in der sich auch die Ressourcen befinden, die darauf zugreifen. Die ausgewählte Region kann später nicht mehr geändert werden. In den meisten Fällen müssen Sie keine Zone angeben.

  7. Aktualisieren Sie unter Konfigurationsoptionen die Einstellungen für Ihre Instanz:
    Einstellung Hinweise
    Datenbankversion Die Datenbankversion kann nicht bearbeitet werden, nachdem die Instanz erstellt wurde.
    Datenbankversion Console: MySQL 8.0, MySQL 5.7 (Standardeinstellung) oder MySQL 5.6
    API: MYSQL_8_0, MYSQL_5_7 (Standardeinstellung) oder MYSQL_5_6
    Verbindung
    Private IP-Adresse Fügt Ihrer Instanz eine private IP-Adresse hinzu. Um eine Verbindung zur Instanz herstellen zu können, ist eine zusätzliche Konfiguration erforderlich. .
    Öffentliche IP-Adresse Fügt Ihrer Instanz eine öffentliche IP-Adresse hinzu. Zum Herstellen einer Verbindung mit der Instanz ist eine zusätzliche Konfiguration erforderlich.
    Maschinentyp und Speicher
    Maschinentyp Der Maschinentyp (manchmal auch "Tier" genannt) bestimmt die Anzahl der CPUs und die Speicherkapazität der Instanz. Weitere Informationen
    Speichertyp Bestimmt, ob die Instanz einen SSD- oder HDD-Speicher verwendet. Weitere Informationen
    Speicherkapazität Die bereitgestellte Speicherkapazität für die Instanz. Weitere Informationen
    Automatische Speichererweiterung Legt fest, ob über Cloud SQL automatisch mehr Speicherkapazität für die Instanz bereitgestellt wird, wenn wenig freier Speicherplatz verfügbar ist. Weitere Informationen
    Hochverfügbarkeit Wenn Hochverfügbarkeit für Ihre Instanz konfiguriert werden soll, klicken Sie auf das Kästchen Hochverfügbarkeit (regional). Weitere Informationen
    Automatische Sicherungen Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Aufbewahrungseinstellungen für automatische Sicherungen Die Anzahl der automatischen Sicherungen, die Sie aufbewahren möchten (von 1 bis 365 Tagen). Weitere Informationen
    Binär-Logging Binär-Logging ermöglicht Replikationen und Wiederherstellungen zu einem bestimmten Zeitpunkt. Weitere Informationen
    Aufbewahrungseinstellungen für binäres Logging Konfigurieren Sie die Aufbewahrung von binären Logs von eins bis sieben Tagen. Die Standardeinstellung ist sieben Tage. Weitere Informationen
    Datenbank-Flags hinzufügen
    Datenbank-Flags Mit Datenbank-Flags können Sie Einstellungen und Parameter für Ihre Instanz festlegen. Weitere Informationen
    Wartungsplan
    Wartungsfenster Ein Zeitfenster von einer Stunde, in dem von Cloud SQL tief greifende Wartungsaufgaben für die Instanz durchgeführt werden können. Wenn Sie dieses Zeitfenster nicht festlegen, können jederzeit Wartungsaufgaben mit Betriebsunterbrechung durchgeführt werden. Weitere Informationen
    Wartungszeitpunkt Der bevorzugte Zeitpunkt für Aktualisierungen der Instanz relativ zu anderen Instanzen im selben Projekt. Weitere Informationen

    Weitere Informationen zu Instanzeinstellungen

  8. Klicken Sie auf Erstellen.

gcloud

Informationen zur Installation des gcloud-Befehlszeilentools und zu ersten Schritten mit dem Tool finden Sie unter Cloud SDK installieren. Informationen zum Starten von Cloud Shell erhalten Sie in der Cloud Shell-Dokumentation.

  1. Rufen Sie die Liste der verfügbaren Maschinentypen auf:
    gcloud sql tiers list
    

    Achten Sie auf die Werte, die mit db- beginnen. Wählen Sie einen dieser Werte zum Erstellen einer Instanz der zweiten Generation aus.

    Informationen zu den verschiedenen Maschinentypen, ihren Funktionen und ihrem Einfluss auf die Instanzpreise finden Sie auf der Preisseite.

  2. Erstellen Sie die Instanz:
    gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
    

    Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.
    Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

    MACHINE_TYPE ist einer der Werte aus dem vorherigen Schritt, der mit db- beginnt.

    Mit dem folgenden Befehl wird beispielsweise eine Instanz der zweiten Generation namens "instance1" mit dem Maschinentyp db-n1-standard-2 in der Region London erstellt:

    gcloud sql instances create instance1 --tier=db-n1-standard-2 --region=europe-west2
    

    Sie können weitere Parameter hinzufügen, um andere Instanzeinstellungen festzulegen:

    Einstellung Parameter Hinweise
    Erforderliche Parameter
    Datenbankversion --database-version MYSQL_8_0, MYSQL_5_7 (Standard) oder MYSQL_5_6.
    Region --region Gültige Werte ansehen
    Verbindung
    Private IP-Adresse --network Gibt den Namen des VPC-Netzwerks an, das für diese Instanz verwendet werden soll. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein. Dies ist nur für den Betabefehl (gcloud beta sql instances create) verfügbar. Weitere Informationen
    Öffentliche IP-Adresse --authorized-networks Bei öffentlichen IP-Verbindungen können Verbindungen mit der Instanz nur über autorisierte Netzwerke hergestellt werden. Weitere Informationen
    Maschinentyp und Speicher
    Maschinentyp --tier Der Maschinentyp bestimmt die Anzahl der CPUs und die Speicherkapazität der Instanz. Hier finden Sie Informationen zu Standardwerten. Sie können auch benutzerdefinierte Maschinentypen erstellen. Weitere Informationen
    Speichertyp --storage-type Bestimmt, ob die Instanz einen SSD- oder HDD-Speicher verwendet. Weitere Informationen
    Speicherkapazität --storage-size Die Menge an bereitgestelltem Speicherplatz für die Instanz in GB. Weitere Informationen
    Automatische Speichererweiterung --storage-auto-increase Legt fest, ob über Cloud SQL automatisch mehr Speicherkapazität für die Instanz bereitgestellt wird, wenn wenig freier Speicherplatz verfügbar ist. Weitere Informationen
    Automatische Begrenzung der Speichererweiterung --storage-auto-increase-limit Bestimmt, um wie viel der Speicherplatz von Cloud SQL automatisch erhöht werden kann. Dies ist nur für den Betabefehl (gcloud beta sql instances create) verfügbar. Weitere Informationen
    Automatische Sicherungen und Hochverfügbarkeit
    Hochverfügbarkeit --availability-type Legen Sie für eine Instanz mit Hochverfügbarkeit hierfür den Wert REGIONAL fest. Weitere Informationen
    Automatische Sicherungen --backup-start-time Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Aufbewahrungseinstellungen für automatische Sicherungen --retained-backups-count Die Anzahl der automatischen Sicherungen, die aufbewahrt werden sollen. Weitere Informationen
    Binär-Logging --enable-bin-log Binär-Logging ermöglicht Replikationen und Wiederherstellungen zu einem bestimmten Zeitpunkt. Weitere Informationen
    Aufbewahrungseinstellungen für binäres Logging --retained-transaction-log-days Die Anzahl der Tage, für die binäre Logs für die Wiederherstellung zu einem bestimmten Zeitpunkt aufbewahrt werden. Weitere Informationen
    Datenbank-Flags hinzufügen
    Datenbank-Flags --database-flags Mit Datenbank-Flags können Sie Einstellungen und Parameter für Ihre Instanz festlegen. Weitere Informationen zu Datenbank-Flags. Hier finden Sie Informationen zum Format dieses Parameters.
    Wartungsplan
    Wartungsfenster --maintenance-window-day,
    --maintenance-window-hour
    Legt ein Zeitfenster von einer Stunde fest, in dem von Cloud SQL eine Wartung mit Betriebsunterbrechung an der Instanz ausgeführt werden kann. Wenn Sie dieses Zeitfenster nicht festlegen, können solche Wartungsaufgaben jederzeit durchgeführt werden. Weitere Informationen
    Wartungszeitpunkt --maintenance-release-channel Die bevorzugte Zeit für Aktualisierungen der Instanz relativ zu anderen Instanzen im selben Projekt. Verwenden Sie preview für frühere Aktualisierungen und production für spätere Aktualisierungen. Weitere Informationen

  3. Notieren Sie die automatisch zugewiesene IP-Adresse.

    Falls Sie nicht den Cloud SQL-Proxy verwenden, nutzen Sie diese Adresse als Hostadresse, mit der Ihre Anwendungen oder Tools eine Verbindung zu der Instanz herstellen.

  4. Legen Sie das Passwort für den MySQL-Nutzer „root@%“ fest:
    gcloud sql users set-password root --host=% --instance INSTANCE_NAME --password PASSWORD
    

REST v1beta4

Die Instanz erstellen

In diesem Beispiel wird eine Instanz mit aktivierten Sicherungen und aktiviertem binärem Logging erstellt. Diese Einstellungen sind optional. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances:insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für Region und Maschinentyp, erhalten Sie unter Instanzeinstellungen.

Die Instanz-ID sollte keine vertraulichen oder personenbezogenen Informationen enthalten, da sie extern sichtbar ist.
Die Projekt-ID muss im Instanznamen nicht angegeben werden. Dies erfolgt automatisch, wo es erforderlich ist, beispielsweise in den Logdateien.

Geben Sie für die Parameter folgende Werte an:

  • project-id: Ihre Projekt-ID
  • instance-id: die gewünschte Instanz-ID
  • database-version: Enum-String der Datenbankversion Beispiel: MYSQL_5_7
  • region: die gewünschte Region
  • machine-type: den gewünschten Maschinentyp

HTTP-Methode und URL:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

JSON-Text anfordern:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Die Antwort ist ein Vorgang mit langer Ausführungszeit, der einige Minuten dauern kann.

Root-Passwort aktualisieren

Aktualisieren Sie nach der Initialisierung der Instanz das Root-Passwort:

Geben Sie für die Parameter folgende Werte an:

  • project-id: Ihre Projekt-ID
  • instance-id: die Instanz-ID, die im vorherigen Schritt erstellt wurde
  • root-password: das gewünschte Root-Passwort

HTTP-Methode und URL:

PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root

JSON-Text anfordern:

{
  "name": "root",
  "host": "%",
  "password": "root-password"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2019-09-26T14:32:30.592Z",
  "startTime": "2019-09-26T14:32:30.594Z",
  "endTime": "2019-09-26T14:32:33.518Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Die Antwort ist ein Vorgang mit langer Ausführungszeit, der einige Minuten dauern kann.

IPv4-Adresse abrufen

Rufen Sie die automatisch zugewiesene IPv4-Adresse für die neue Instanz ab:

Geben Sie für die Parameter folgende Werte an:

  • project-id: Ihre Projekt-ID
  • instance-id: die Instanz-ID, die im vorherigen Schritt erstellt wurde

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": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@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": "us-west1",
  "gceZone": "us-west1-a"
}

Suchen Sie in der Antwort nach dem Feld ipAddress.

Informationen zum Aufbau der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite instances:insert.

Beispielmaschinentypen

Mit benutzerdefinierten Maschinentypen können Sie Ihre Instanz mit der benötigten Menge an Speicher und CPUs konfigurieren. Für diese Werte gelten aber einige Einschränkungen:

  • Der Wert für vCPUs muss entweder 1 oder eine gerade Zahl im Bereich von 2 bis 32 sein.
  • Für den Arbeitsspeicherwert gilt Folgendes:
    • Pro vCPU sind 0,9 bis 6,5 GB zulässig
    • Muss ein Vielfaches von 256 MB sein
    • Muss mindestens 3,75 GB (3.840 MB) sein

Im Folgenden finden Sie einige Beispiele für Maschinentypwerte auf der Grundlage der vordefinierten Maschinentypen, die für MySQL-Instanzen verfügbar sind:

Vordefinierter Maschinentyp vCPUs Arbeitsspeicher (MB) API-Stufenstring
db-n1-standard-1 1 3.840 db-custom-1-3840
db-n1-standard-2 2 7.680 db-custom-2-7680
db-n1-standard-4 4 15.360 db-custom-4-15360
db-n1-standard-8 8 30.720 db-custom-8-30720
db-n1-standard-16 16 61.440 db-custom-16-61440
db-n1-standard-32 32 122.880 db-custom-32-122880
db-n1-standard-64 64 245.760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13.312 db-custom-2-13312
db-n1-highmem-4 4 26.624 db-custom-4-26624
db-n1-highmem-8 8 53.248 db-custom-8-53248
db-n1-highmem-16 16 106.496 db-custom-16-106496
db-n1-highmem-32 32 212.992 db-custom-32-212992
db-n1-highmem-64 64 425.984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Fehlerbehebung

Klicken Sie auf die Links in der Tabelle, um weitere Informationen zu erhalten:

Problem Mögliche Ursache Lösungsvorschlag
Internal error. Dienstnetzwerk-Dienstkonto fehlt. Deaktivieren Sie die Service Networking API und aktivieren Sie sie noch einmal.
Die Terraform-Instanz konnte nicht erstellt werden. Terraform-Konfigurationsfehler. Prüfen und reparieren Sie die Terraform-Konfigurationsdatei.
HTTP Error 409 im Terraform-Skript. Es wird bereits ein anderer Vorgang ausgeführt. Korrigieren Sie das Terraform-Skript so, dass es auf den Abschluss jedes Vorgangs wartet.
Unknown error Es wird versucht, eine Instanz mit dem Namen einer kürzlich gelöschten Instanz zu erstellen. Oder es wird versucht, gleichzeitig mehrere Instanzen mit einem neuen privaten IP-Bereich anzulegen. Verwenden Sie einen anderen Namen für die Instanz oder warten Sie, bis das Löschen der Instanz eine Woche zurückliegt. Erstellen Sie die fehlerhaften Instanzen nacheinander neu und verwenden Sie andere Namen.

Interner Fehler

Folgende Fehlermeldung ist zu sehen: {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null}.

Mögliche Ursache

Im Dienstprojekt fehlt wahrscheinlich das Dienstnetzwerk-Dienstkonto, das für dieses Feature erforderlich ist.

Lösungsvorschlag

Deaktivieren Sie zum Reparieren von Dienstberechtigungen die Service Networking API, warten Sie fünf Minuten und aktivieren Sie sie dann wieder.


Terraform-Instanz konnte nicht erstellt werden

Die Terraform-Instanz konnte nicht erstellt werden.

Mögliche Ursache

Dies ist normalerweise ein Problem im Terraform-Skript selbst.

Lösungsvorschlag

Prüfen und reparieren Sie die Terraform-Konfigurationsdatei.


Fehler 409 im Terraform-Skript

In Terraform-Skripts ist die Fehlermeldung HTTP Error 409 zu sehen.

Mögliche Ursache

Operation failed because another operation was already in progress

Lösungsvorschlag

Überarbeiten Sie das Skript so, dass die Ausführung angehalten wird, bis jeder Instanzvorgang abgeschlossen ist. Lassen Sie das Skript abfragen und warten Sie, bis für die vorherige Vorgangs-ID der Wert 200 zurückgegeben wird, bevor Sie mit dem nächsten Schritt fortfahren.


Unbekannter Fehler

Beim Erstellen einer Instanz ist eine Fehlermeldung wie Cloud SQL creation failed, error UNKNOWN zu sehen.

Mögliche Ursache

Höchstwahrscheinlich versuchen Sie, den Namen einer kürzlich gelöschten Instanz wiederzuverwenden. Instanznamen können nach dem Löschen eine Woche lang nicht wiederverwendet werden. Wenn nur die erste Instanz erstellt wird und andere mit Unknown error fehlschlagen, kann es auch sein, dass Sie versuchen, mehrere Instanzen gleichzeitig mit einem neuen privaten IP-Bereich anzulegen.

Lösungsvorschlag

Verwenden Sie entweder einen anderen Namen für die Instanz oder warten Sie eine Woche, um eine neue Instanz mit diesem Namen zu erstellen. Erstellen Sie mehrere Instanzen nacheinander und nicht gleichzeitig.

Nächste Schritte