Instanzen erstellen

Auf dieser Seite wird das Erstellen einer Cloud SQL für MySQL-Instanz beschrieben.

Ausführliche Informationen über alle Instanzeinstellungen finden Sie unter Instanzeinstellungen.

Eine neu erstellte Instanz hat vier Systemdatenbanken:

  • information_schema: Bietet Zugriff auf Datenbankmetadaten, Informationen über den MySQL-Server.
  • mysql: Das Systemschema. Es enthält Tabellen, in denen Informationen gespeichert sind, die der MySQL-Server während der Ausführung benötigt.
  • performance_schema: Ein Feature, um die Ausführung des MySQL-Servers auf niedriger Ebene zu überwachen.
  • sys: Enthält eine Reihe von Objekten, die Datenbankadministratoren und Entwickler bei der Interpretation der vom Leistungsschema erfassten Daten unterstützen.

Hinweis

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. 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

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf Instanz erstellen.
  3. Klicken Sie im Bereich Datenbankmodul auswählen der Seite Instanz erstellen auf MySQL auswählen.
  4. Geben Sie im Feld Instanz-ID des Bereichs Instanzinformationen eine ID für Ihre Instanz ein.

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

  5. Legen Sie ein Passwort für den Root-Nutzer fest.

    Es gibt zwar die Option Kein Passwort, diese wird aber aus Sicherheitsgründen nicht empfohlen.

  6. Klicken Sie auf das Symbol Passwort anzeigen, um das Passwort als Klartext anzusehen.

    Sie können das Passwort entweder manuell eingeben oder auf Generieren klicken, damit Cloud SQL automatisch ein Passwort erstellt.
  7. Optional: Konfigurieren Sie eine Passwortrichtlinie für die Instanz:

    1. Setzen Sie das Häkchen für Passwortrichtlinien aktivieren. .
    2. Klicken Sie auf die Schaltfläche Passwortrichtlinie festlegen, legen Sie eine oder mehrere der folgenden Optionen fest und klicken Sie auf Speichern.
      • Mindestlänge: Gibt die Mindestanzahl an Zeichen an, die das Passwort haben muss.
      • Komplexität des Passworts: Prüft, ob das Passwort eine Kombination aus Kleinbuchstaben, Großbuchstaben, numerischen und nicht alphanumerischen Zeichen ist.
      • Wiederverwendung von Passwörtern einschränken: Gibt die Anzahl vorheriger Passwörter an, die nicht wiederverwendet werden können.

        Wird nur für Cloud SQL for MySQL 8.0 und neuer unterstützt.

      • Nutzernamen nicht zulassen: Verhindert die Verwendung des Nutzernamens im Passwort.
  8. Wählen Sie die Datenbankversion für Ihre Instanz aus: MySQL 8.4, MySQL 8.0 (Standard), MySQL 5.7 oder MySQL 5.6.
  9. Optional: Wählen Sie Nebenversionen anzeigen aus. Wählen Sie dann eine Nebenversion als die Nebenversion aus.
  10. Die Datenbankversion kann nicht bearbeitet werden, nachdem die Instanz erstellt wurde.

  11. Wählen Sie die Cloud SQL-Version für Ihre Instanz aus: Enterprise oder Enterprise plus. Weitere Informationen zu den Cloud SQL-Versionen finden Sie unter Einführung in die Cloud SQL-Versionen.
  12. Wählen Sie im Abschnitt Region und zonale Verfügbarkeit auswählen die Region und die Zone für Ihre Instanz aus. Die Verfügbarkeit der Region kann je nach Cloud SQL-Version variieren. Weitere Informationen finden Sie unter Instanzeinstellungen.

    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.

    Wenn Sie eine Instanz für Hochverfügbarkeit konfigurieren, können Sie sowohl eine primäre als auch eine sekundäre Zone auswählen.

    Die folgenden Bedingungen gelten, wenn die sekundäre Zone während der Instanzerstellung verwendet wird:

    • Die Zonen verwenden standardmäßig Any für die primäre Zone und Any (different from primary) für die sekundäre Zone.
    • Wenn sowohl die primäre als auch die sekundäre Zone angegeben sind, müssen sie unterschiedliche Zonen sein.
  13. Ändern Sie im Bereich Instanz anpassen die Einstellungen für Ihre Instanz. Klicken Sie zuerst auf KONFIGURATIONSOPTIONEN EINBLENDEN, um die Gruppe der Einstellungen aufzurufen. Erweitern Sie dann die gewünschten Gruppen, um die Einstellungen zu überprüfen und anzupassen. Rechts sehen Sie eine Zusammenfassung aller Optionen, die Sie auswählen. Das Anpassen dieser Instanzeinstellungen ist optional. Standardwerte werden immer zugewiesen, wenn keine Anpassungen vorgenommen werden.

    Die folgende Tabelle enthält eine Kurzreferenz zu den Instanzeinstellungen. Weitere Informationen zu den einzelnen Einstellungen finden Sie auf der Seite zu den Instanzeinstellungen.

    Einstellung Hinweise
    Maschinentyp
    Maschinentyp Wählen Sie zwischen „Gemeinsam genutzter Kern“ oder „Dedizierter Kern“ aus. Bei gemeinsam genutztem Kern wird jeder Maschinentyp nach der Anzahl der CPUs (Kerne) und der Größe des Arbeitsspeichers für Ihre Instanz klassifiziert.
    Kerne Die Anzahl der vCPUs für Ihre Instanz. Weitere Informationen
    Speicher Die Menge an Arbeitsspeicher für Ihre Instanz in GB. Weitere Informationen
    Benutzerdefiniert Wählen Sie für den Maschinentyp „Dedizierter Kern“ die Schaltfläche Benutzerdefiniert aus, um eine Instanz mit einer benutzerdefinierten Konfiguration zu erstellen. Wenn Sie diese Option auswählen, müssen Sie die Anzahl der Kerne und den Speicherplatz für die Instanz auswählen. Weitere Informationen
    Speicherplatz
    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 Speichererhöhungen aktivieren 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
    Verschlüsselung
    Von Google verwaltete VerschlüsselungDie Standardoption.
    Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK)Auswählen, um Ihren Schlüssel mit dem Google Cloud Key Management Service zu verwenden. Weitere Informationen
    Verbindungen
    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.
    Optional können Sie einen zugewiesenen IP-Bereich für Ihre Instanzen angeben, der für Verbindungen verwendet werden soll.
    1. Maximieren Sie die Option Zugewiesenen IP-Bereich anzeigen.
    2. Wählen Sie einen IP-Bereich aus dem Drop-down-Menü aus.

    Die Instanz kann sowohl eine öffentliche als auch eine private IP-Adresse haben.

    Öffentliche IP-Adresse Fügt Ihrer Instanz eine öffentliche IP-Adresse hinzu. Sie können dann autorisierte Netzwerke hinzufügen, um eine Verbindung zur Instanz herzustellen.

    Die Instanz kann sowohl eine öffentliche als auch eine private IP-Adresse haben.

    Mehr über Öffentliche IP-Adressen verwenden erfahren.

    Autorisierte Netzwerke

    Geben Sie den Namen für das neue Netzwerk und die Netzwerkadresse ein. Weitere Informationen

    Privater Pfad für Google Cloud-Dienste

    Wenn Sie dieses Kästchen anklicken, können andere Google Cloud-Dienste wie BigQuery auf Daten in Cloud SQL zugreifen und über eine private Verbindung Abfragen an diese Daten senden.

    Datenschutz
    Automatische Sicherungen Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Wählen Sie den Speicherort für Ihre Sicherungen ausWählen Sie für die meisten Anwendungsfälle "Multiregion" aus. Wenn Sie Sicherungen in einer bestimmten Region speichern müssen, beispielsweise aus regulatorischen Gründen, wählen Sie Region und anschließend Ihre Region aus dem Drop-down-Menü "Standort" aus.
    Wählen Sie aus, wie viele automatische Sicherungen gespeichert werden sollenDie Anzahl der automatischen Sicherungen, die Sie aufbewahren möchten (von 1 bis 365 Tagen). Weitere Informationen
    Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren Ermöglicht die Wiederherstellung zu einem bestimmten Zeitpunkt und Write-Ahead-Logging. Weitere Informationen
    Löschschutz aktivieren Bestimmt, ob eine Instanz vor versehentlichem Löschen geschützt wird. Weitere Informationen
    Wählen Sie aus, wie viele Tage die Logs aufbewahrt werden sollen Konfigurieren Sie die Aufbewahrung von Write-Ahead-Logs von 1 bis 7 Tagen. Die Standardeinstellung ist 7 Tage. Weitere Informationen
    Wartung
    Bevorzugtes Fenster 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
    Reihenfolge der Updates Die bevorzugte Zeit für Aktualisierungen der Instanz relativ zu anderen Instanzen im selben Projekt. Weitere Informationen
    Flags
    FLAG HINZUFÜGEN Mit Datenbank-Flags können Sie Einstellungen und Parameter für Ihre Instanz festlegen. Weitere Informationen
    Labels
    LABEL HINZUFÜGENFügen Sie für jedes hinzugefügte Label einen Schlüssel und einen Wert hinzu. Mit Labels können Sie Ihre Instanzen organisieren.
    Datencache
    Daten-Cache aktivieren (optional) Aktiviert den Datencache für Cloud SQL for MySQL Enterprise Plus-Instanzen. Weitere Informationen zum Daten-Cache finden Sie unter Daten-Cache.
  14. Klicken Sie auf Instanz erstellen.

    Hinweis: Das Erstellen der Instanz kann einige Minuten dauern. Sie können jedoch Informationen über die Instanz abrufen, während sie erstellt wird.

gcloud

Informationen zur Installation und den ersten Schritten mit der gcloud CLI finden Sie unter gcloud CLI installieren. Informationen zum Starten von Cloud Shell finden Sie in der Cloud Shell-Dokumentation.

  1. Erstellen Sie die Instanz mit dem Befehl gcloud sql instances create:
  2. Für Cloud SQL Enterprise Plus-Instanzen:

    gcloud sql instances create INSTANCE_NAME \
    --region=REGION \
    --tier=TIER \
    --database-version=DATABASE_VERSION \
    --edition=ENTERPRISE_PLUS

    Für Cloud SQL Enterprise-Instanzen:

    gcloud sql instances create INSTANCE_NAME \
    --cpu=NUMBER_CPUS \
    --memory=MEMORY_SIZE \
    --region=REGION

    Alternativ können Sie das Flag --tier verwenden, wenn Sie db-f1-micro oder db-g1-small als Maschinentyp auswählen:
    gcloud sql instances create INSTANCE_NAME \
    --tier=API_TIER_STRING \
    --region=REGION

    Es gelten Beschränkungen der Werte für vCPUs und Speichergröße:

    • Der Wert für vCPUs muss entweder 1 oder eine gerade Zahl im Bereich von 2 bis 32 sein.
    • Der Wert für Speicher muss folgender sein:
      • 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

    Mit dem folgenden Befehl wird beispielsweise eine Cloud SQL Enterprise-Instanz mit zwei vCPUs und 7.680 MB Arbeitsspeicher erstellt:

    gcloud sql instances create myinstance \
    --database-version=MYSQL_8_0 \
    --cpu=2 \
    --memory=7680MB \
    --region=us-central1

    Mit dem folgenden Befehl wird eine Cloud SQL Enterprise Plus-Instanz mit vier Kernen erstellt:

    gcloud sql instances create myinstance \
    --database-version=MYSQL_8_0_31 \
    --tier=db-perf-optimized-N-4 \
    --edition=ENTERPRISE_PLUS \
    --region=us-central1

    Der Standardwert für REGION ist us-central1.

    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.

    Wenn Sie eine Instanz für Hochverfügbarkeit erstellen, können Sie die primäre und sekundäre Zone mithilfe der Parameter --zone und --secondary-zone angeben. Die folgenden Bedingungen gelten, wenn die sekundäre Zone während der Erstellung oder Bearbeitung einer Instanz verwendet wird:

    • Die Zonen müssen gültige Zonen sein.
    • Wenn die sekundäre Zone angegeben ist, muss auch die primäre Zone angegeben werden.
    • Wenn die primäre und sekundäre Zone angegeben ist, müssen sie unterschiedliche Zonen sein.
    • Wenn die primäre und sekundäre Zone angegeben ist, müssen sie derselben Region angehören.

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

    Einstellung Parameter Hinweise
    Erforderliche Parameter
    Datenbankversion --database-version Die Datenbankversion, die auf Ihrer Cloud SQL-Version basiert.
    Region --region Gültige Werte ansehen
    Passwortrichtlinie festlegen
    Passwortrichtlinie aktivieren --enable-password-policy Aktiviert die Passwortrichtlinie, wenn sie verwendet wird. Standardmäßig ist die Passwortrichtlinie deaktiviert. Bei Deaktivierung mit dem Parameter --clear-password-policy werden die anderen Parameter für die Passwortrichtlinie zurückgesetzt. .
    Mindestlänge --password-policy-min-length Gibt die Mindestanzahl an Zeichen an, die das Passwort haben muss.
    Komplexität des Passworts --password-policy-complexity Aktiviert die Prüfung der Passwortkomplexität, ob das Passwort jeweils einen der folgenden Zeichentypen enthält: Kleinbuchstaben, Großbuchstaben, numerische und nicht alphanumerische Zeichen. Legen Sie den Wert auf COMPLEXITY_DEFAULT fest.
    Wiederverwendung von Passwörtern einschränken --password-policy-reuse-interval Gibt die Anzahl vorheriger Passwörter an, die nicht wiederverwendet werden können. Wird nur für Cloud SQL for MySQL 8.0 und neuer unterstützt.
    Nutzernamen nicht zulassen --password-policy-disallow-username-substring Verhindert die Verwendung des Nutzernamens im Passwort. Mit dem Parameter --no-password-policy-disallow-username-substring können Sie die Prüfung deaktivieren.
    Verbindung
    Private IP-Adresse --network

    --no-assign-ip (optional)

    --allocated-ip-range-name (optional)

    --enable-google-private-path (optional)

    --network: gibt den Namen des VPC-Netzwerks an, das für die 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.

    --no-assign-ip: die Instanz hat nur eine private IP-Adresse.

    --allocated-ip-range-name: legt den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Beispiel: google-managed-services-default. Der Bereichsname sollte RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein. (gcloud alpha sql instances create).

    --enable-google-private-path: Wenn Sie diesen Parameter verwenden, erlauben Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private Verbindung.

    Dieser Parameter ist nur in folgenden Fällen gültig:

    • Sie verwenden den Parameter --no-assign-ip.
    • Sie geben mit dem Parameter --network den Namen des VPC-Netzwerks an, das Sie zum Erstellen einer privaten Verbindung verwenden möchten.

    Öffentliche IP-Adresse --authorized-networks Bei öffentlichen IP-Verbindungen können Verbindungen mit der Instanz nur über autorisierte Netzwerke hergestellt werden. Weitere Informationen
    SSL-Erzwingung

    --ssl-mode

    --require-ssl

    Der Parameter ssl-mode erzwingt die SSL/TLS-Erzwingung für die Verbindungen. Weitere Informationen finden Sie unter Einstellungen für Cloud SQL for MySQL.

    Der Parameter require-ssl bestimmt, ob SSL-Verbindungen über IP erzwungen werden. require-ssl ist ein Legacy-Parameter. Verwenden Sie stattdessen ssl-mode. Weitere Informationen finden Sie unter IpConfiguration.

    Server-CA-Modus --server-ca-mode

    Mit dem Flag --server-ca-mode wird die Art der Zertifizierungsstelle (Certificate Authority, CA) für eine Instanz konfiguriert. Sie können dies ändern und haben folgende Auswahlmöglichkeiten:

    • GOOGLE_MANAGED_INTERNAL_CA: Dies ist der Standardwert. Bei dieser Option signiert eine interne Zertifizierungsstelle, die jeder Cloud SQL-Instanz zugewiesen ist, das Serverzertifikat für diese Instanz.
    • GOOGLE_MANAGED_CAS_CA: Mit dieser Option wird eine CA-Hierarchie aus einer Stamm-CA und untergeordneten Server-CAs verwendet, die von Cloud SQL verwaltet und auf dem Google Cloud Certificate Authority Service (CA Service) gehostet werden. Die untergeordneten Server-CAs in einer Region signieren die Serverzertifikate und werden für alle Instanzen in der Region freigegeben. Diese Option wird nur von MySQL 8.0.30 und höher unterstützt.

    Die Verwendung des --server-ca-mode-Flags ist in der Vorabversion verfügbar.

    Maschinentyp und Speicher
    Maschinentyp --tier Wird verwendet, um eine Instanz mit gemeinsam genutztem Kern anzugeben (db-f1-micro oder db-g1-small). Verwenden Sie für eine benutzerdefinierte Instanzkonfiguration stattdessen die Parameter --cpu oder --memory. Siehe Benutzerdefinierte Instanzkonfiguration.
    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
    Datencache (optional) --enable-data-cache Aktiviert oder deaktiviert den Datencache für Instanzen. Weitere Informationen finden Sie unter Datencache.
    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
    Sekundäre Zone --secondary-zone Wenn Sie eine Instanz für Hochverfügbarkeit erstellen, können Sie mit --zone und --secondary-zone parameters sowohl die primäre als auch die sekundäre Zone angeben. Die folgenden Einschränkungen gelten, wenn die sekundäre Zone bei der Erstellung oder Bearbeitung von Instanzen verwendet wird:
    • Die Zonen müssen gültige Zonen sein.
    • Wenn die sekundäre Zone angegeben ist, muss auch die primäre Zone angegeben werden.
    • Wenn die primäre und sekundäre Zone angegeben ist, müssen sie unterschiedliche Zonen sein.

      Wenn die primäre und sekundäre Zone angegeben ist, müssen sie derselben Region angehören.

    Automatische Sicherungen --backup-start-time Das Zeitfenster, in dem Sicherungen gestartet werden sollen. Weitere Informationen
    Einstellungen für die Aufbewahrung von automatischen 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
    Einstellungen für die Aufbewahrung von binären Logs --retained-transaction-log-days Die Anzahl der Tage, die Binärlogs für die Wiederherstellung zu einem bestimmten Zeitpunkt aufbewahrt werden sollen. 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 Auth-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

Terraform

Verwenden Sie zum Erstellen einer Instanz eine Terraform-Ressource.

resource "google_sql_database_instance" "mysql_pvp_instance_name" {
  name             = "mysql-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "MYSQL_8_0"
  root_password    = "abcABC123!"
  settings {
    tier = "db-f1-micro"
    password_validation_policy {
      min_length                  = 6
      complexity                  = "COMPLEXITY_DEFAULT"
      reuse_interval              = 2
      disallow_username_substring = true
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Änderungen anwenden

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Änderungen löschen

So löschen Sie das Projekt:

  1. Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument deletion_protection auf false.
    deletion_protection =  "false"
  2. Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
  1. Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und yes an der Eingabeaufforderung eingeben:

    terraform destroy

REST Version 1

Die Instanz erstellen

In diesem Beispiel wird eine Instanz erstellt. Einige optionale Parameter wie Sicherungen und binäres Logging sind ebenfalls enthalten. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, 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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: Ihre Instanz-ID.
  • DATABASE_VERSION: Die Datenbankversion. Beispiel: MYSQL_8_4 oder MYSQL_8_0_37 Wenn Sie keine Datenbankversion angeben, wird die Standarddatenbankversion MYSQL_8_0 verwendet.
  • REGION: Die Region.
  • MACHINE_TYPE: Ihr Maschinentyp.
  • EDITION_TYPE: Ihre Cloud SQL-Version
  • DATA_CACHE_ENABLED: (Optional) Auf true gesetzt, um den Datencache für Ihre Instanz zu aktivieren
  • PRIVATE_NETWORK: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • AUTHORIZED_NETWORKS: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
  • CA_MODE: Geben Sie eine Zertifizierungsstellenhierarchie für die Instanz an, entweder GOOGLE_MANAGED_INTERNAL_CA oder GOOGLE_MANAGED_CAS_CA. Wenn Sie serverCaMode nicht angeben, wird die Standardkonfiguration GOOGLE_MANAGED_INTERNAL_CA verwendet. Diese Funktion befindet sich in der Vorabversion.

Wenn Sie eine Passwortrichtlinie beim Erstellen der Instanz festlegen möchten, fügen Sie das passwordValidationPolicy-Objekt in die Anfrage ein. Legen Sie nach Bedarf die folgenden Parameter fest:

  • enablePasswordPolicy: Aktiviert die Passwortrichtlinie, wenn dafür true abgegeben ist.

    Um die Passwortrichtlinie zu entfernen, verwenden Sie eine PATCH-Anfrage mit null für enablePasswordPolicy. In diesem Fall werden die anderen Parameter der Passwortrichtlinie zurückgesetzt.

  • minLength: Gibt die Mindestanzahl an Zeichen an, die das Passwort haben muss.
  • complexity: Prüft, ob das Passwort eine Kombination aus Kleinbuchstaben, Großbuchstaben, numerischen und nicht alphanumerischen Zeichen ist. Der Standardwert ist COMPLEXITY_DEFAULT.
  • reuseInterval: Gibt die Anzahl vorheriger Passwörter an, die nicht wiederverwendet werden können.

    Wird nur für Cloud SQL for MySQL 8.0 und neuer unterstützt.

  • disallowUsernameSubstring: Verhindert die Verwendung des Nutzernamens im Passwort, wenn dafür true festgelegt ist.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
    }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE"
    }
  }
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/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:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • 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://sqladmin.googleapis.com/v1/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 sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

IPv4-Adresse abrufen

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

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

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/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_8_0_18",
  "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://sqladmin.googleapis.com/v1/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.

REST v1beta4

Die Instanz erstellen

In diesem Beispiel wird eine Instanz erstellt. Einige optionale Parameter wie Sicherungen und binäres Logging sind ebenfalls enthalten. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, finden 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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • INSTANCE_ID: Ihre Instanz-ID.
  • DATABASE_VERSION: Die Datenbankversion. Beispiel: MYSQL_8_4 oder MYSQL_8_0_37 Wenn Sie keine Datenbankversion angeben, wird die Standardversion MYSQL_8_0 verwendet.
  • REGION: Die Region.
  • MACHINE_TYPE: Ihr Maschinentyp.
  • EDITION_TYPE: Ihre Cloud SQL-Version
  • DATA_CACHE_ENABLED: (Optional) Auf true gesetzt, um den Datencache für Ihre Instanz zu aktivieren
  • PRIVATE_NETWORK: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • AUTHORIZED_NETWORKS: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
  • CA_MODE: Geben Sie eine Zertifizierungsstellenhierarchie für die Instanz an, entweder GOOGLE_MANAGED_INTERNAL_CA oder GOOGLE_MANAGED_CAS_CA. Wenn Sie serverCaMode nicht angeben, wird die Standardkonfiguration GOOGLE_MANAGED_INTERNAL_CA verwendet. Diese Funktion befindet sich in der Vorabversion.

Wenn Sie eine Passwortrichtlinie beim Erstellen der Instanz festlegen möchten, fügen Sie das passwordValidationPolicy-Objekt in die Anfrage ein. Legen Sie nach Bedarf die folgenden Parameter fest:

  • enablePasswordPolicy: Aktiviert die Passwortrichtlinie, wenn dafür true abgegeben ist.

    Um die Passwortrichtlinie zu entfernen, verwenden Sie eine PATCH-Anfrage mit null für enablePasswordPolicy. In diesem Fall werden die anderen Parameter der Passwortrichtlinie zurückgesetzt.

  • minLength: Gibt die Mindestanzahl an Zeichen an, die das Passwort haben muss.
  • complexity: Prüft, ob das Passwort eine Kombination aus Kleinbuchstaben, Großbuchstaben, numerischen und nicht alphanumerischen Zeichen ist. Der Standardwert ist COMPLEXITY_DEFAULT.
  • reuseInterval: Gibt die Anzahl vorheriger Passwörter an, die nicht wiederverwendet werden können.

    Wird nur für Cloud SQL for MySQL 8.0 und neuer unterstützt.

  • disallowUsernameSubstring: Verhindert die Verwendung des Nutzernamens im Passwort, wenn dafür true festgelegt ist.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "dataCacheConfig" {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
    }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE"
  }
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.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://sqladmin.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:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • 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://sqladmin.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 sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.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://sqladmin.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:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

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

HTTP-Methode und URL:

GET https://sqladmin.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_8_0_18",
  "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://sqladmin.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.

Schreibendpunkt generieren

Wenn Sie eine Cloud SQL Enterprise Plus-Instanz erstellen möchten und Cloud SQL automatisch einen Schreibendpunkt für die Instanz generieren soll, aktivieren Sie die Cloud DNS API für Ihr Google Cloud-Projekt.

Wenn Sie bereits eine Instanz der Cloud SQL Enterprise Plus-Version haben und möchten, dass Cloud SQL automatisch einen Schreibendpunkt generiert, erstellen Sie ein Replikat, das für die erweiterte Notfallwiederherstellung aktiviert ist.

Ein Schreibendpunkt ist ein globaler DNS-Name (Domain Name Service), der automatisch in die IP-Adresse der aktuellen primären Instanz aufgelöst wird. Dieser Endpunkt leitet eingehende Verbindungen bei einem Failover oder Switchover des Replicas automatisch an die neue primäre Instanz weiter. Sie können den Schreibendpunkt in einem SQL-Verbindungsstring anstelle einer IP-Adresse verwenden. Wenn Sie einen Schreibendpunkt verwenden, müssen Sie bei einem regionalen Ausfall keine Änderungen an der Anwendungsverbindung vornehmen.

Weitere Informationen zum Abrufen des Schreibendpunkts für die Instanz finden Sie unter Instanzinformationen ansehen. Weitere Informationen zum Herstellen einer Verbindung zur Instanz über den Schreibendpunkt finden Sie unter Über einen Schreibendpunkt eine Verbindung herstellen.

Nebenversion der Datenbank für MySQL 8.0 angeben

Sie können die Nebenversion einer vorhandenen MySQL 8.0-Instanz mit gcloud oder der REST API angeben.

gcloud

Führen Sie den Befehl gcloud sql instances create mit dem Flag --database-version aus.

Ersetzen Sie vor dem Ausführen des Befehls die folgenden Variablen:

  • INSTANCE_NAME: Name der Instanz
  • DATABASE_VERSION: Datenbanknebenversion der Instanz: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, MYSQL_8_0_30, MYSQL_8_0_31 (Standardnebenversion für MySQL 8.0), MYSQL_8_0_32, MYSQL_8_0_33, MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39 oder MYSQL_8_0_40. Wenn Sie MYSQL_8_0 angeben, wird die Standardnebenversion verwendet.

    Wenn Sie dieses Flag nicht angeben, wird die Standardhauptversion MYSQL_8_0 verwendet.

gcloud sql instances create INSTANCE_NAME \
--database-version=DATABASE_VERSION

Ausführliche Informationen finden Sie in der Dokumentation zum Erstellen einer Instanz mithilfe von gcloud.

REST Version 1

Verwenden Sie eine POST-Anfrage mit der Methode instances:insert und dem Flag databaseVersion.

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Ersetzen Sie diese Variablen, bevor Sie die Anfragedaten verwenden:
  • project_id: ID des Projekts
  • instance_id: Name der Instanz
  • databaseVersion: Datenbankversion der Instanz: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, MYSQL_8_0_30, MYSQL_8_0_31 (Standardnebenversion für MySQL 8.0), MYSQL_8_0_32, MYSQL_8_0_33, MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39 oder MYSQL_8_0_40. Wenn Sie MYSQL_8_0 als Version angeben, wird die Standardnebenversion verwendet. Wenn Sie das Flag databaseVersion nicht angeben, wird die Standardhauptversion MYSQL_8_0 verwendet.

Weitere Informationen finden Sie in der Dokumentation zum Erstellen einer Instanz mithilfe der REST v1 API.

REST v1beta4

Verwenden Sie eine POST-Anfrage mit der Methode instances:insert und dem Flag databaseVersion.

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

Ersetzen Sie diese Variablen, bevor Sie die Anfragedaten verwenden:

  • project_id: ID des Projekts
  • instance_id: Name der Instanz
  • databaseVersion: Datenbanknebenversion der Instanz: MYSQL_8_0_18, MYSQL_8_0_26, MYSQL_8_0_27, MYSQL_8_0_28, MYSQL_8_0_29, MYSQL_8_0_30, MYSQL_8_0_31 (Standardnebenversion für MySQL 8.0), MYSQL_8_0_32, MYSQL_8_0_33. MYSQL_8_0_34, MYSQL_8_0_35, MYSQL_8_0_36, MYSQL_8_0_37, MYSQL_8_0_39 oder MYSQL_8_0_40. Wenn Sie MYSQL_8_0 angeben, wird die Standardnebenversion verwendet. Wenn Sie das Flag databaseVersion nicht angeben, wird die Standardhauptversion MYSQL_8_0 verwendet.

Weitere Informationen finden Sie in der Dokumentation zum Erstellen einer Instanz mithilfe der REST v1beta4 API.

Datenbank-Nebenversion für Lesereplikate, Klone und PITR

Beim Erstellen eines Lesereplikats können Sie die Datenbank-Nebenversion des Lesereplikats angeben. Standardmäßig werden neue Lesereplikate mit der Standardnebenversion erstellt.

Beim Klonen einer Instanz hat die neu erstellte Instanz dieselbe Nebenversion wie die Quelle.

Wenn Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen, hat die neu erstellte Instanz dieselbe Datenbank-Nebenversion wie die Quelle.

Benutzerdefinierte Instanzkonfigurationen

Bestimmt Speicher und virtuelle Kerne, die für Ihre Cloud SQL-Instanz verfügbar sind. Die Verfügbarkeit des Maschinentyps wird durch die Cloud SQL-Version bestimmt.

Achten Sie bei Arbeitslasten, die eine Verarbeitung in Echtzeit erfordern, z. B. die Online-Transaktionsverarbeitung (Online Transaction Processing, OLTP), darauf, dass Ihre Instanz über genügend Arbeitsspeicher verfügt, um den gesamten Arbeitssatz verarbeiten zu können. Außerdem gibt es weitere Faktoren, die sich auf den Arbeitsspeicherbedarf auswirken, wie etwa die Anzahl der aktiven Verbindungen und die internen Overhead-Prozesse. Sie sollten Lasttests durchführen, um Leistungsprobleme in Ihrer Produktionsumgebung zu vermeiden.

Wählen Sie bei der Konfiguration der Instanz genügend Arbeitsspeicher und vCPUs für die Verarbeitung Ihrer Arbeitslast aus. Führen Sie dann ein Upgrade durch, wenn Ihre Arbeitslast zunimmt. Eine Maschinenkonfiguration mit zu wenig vCPUs kann die SLA-Abdeckung verlieren. Weitere Informationen finden Sie unter Betriebsrichtlinien.

Maschinentypen für Cloud SQL Enterprise Plus-Instanzen

Für Instanzen der Cloud SQL Enterprise Plus-Version sind Maschinentypen so vordefiniert:

Enterprise Plus-Maschinentyp vCPUs Arbeitsspeicher (GB) Lokale SSD
db-perf-optimized-N-2 2 16 375
db-perf-optimized-N-4 4 32 375
db-perf-optimized-N-8 8 64 375
db-perf-optimized-N-16 16 128 750
db-perf-optimized-N-32 32 256 1500
db-perf-optimized-N-48 48 384 3.000
db-perf-optimized-N-64 64 512 6000
db-perf-optimized-N-80 80 640 6000
db-perf-optimized-N-96 96 768 6000
db-perf-optimized-N-128 128 864 9000

Maschinentypen für Cloud SQL Enterprise Edition-Instanzen

Für Instanzen der Cloud SQL Enterprise-Version können Sie mit dem Befehl gcloud sql instances create auch benutzerdefinierte Instanzkonfigurationen erstellen. Mit benutzerdefinierten Instanzkonfigurationen können Sie die Größe des Arbeitsspeichers und die Anzahl der CPUs festlegen, die Ihre Instanz benötigt. Mit dieser Flexibilität können Sie die geeignete VM-Form für Ihre Arbeitslast auswählen.

Namen von Maschinentypen haben folgendes Format: db-custom-#-#

Ersetzen Sie den ersten #-Platzhalter durch die Anzahl der CPUs in der Maschine und den zweiten #-Platzhalter durch die Arbeitsspeichermenge auf der Maschine.

Wenn Ihr Maschinenname beispielsweise db-custom lautet und Ihre Maschine 1 CPU und 3.840 MB RAM hat, ist das Format für die Maschine db-custom-1-3840.

Bei der Auswahl der Anzahl der CPUs und der Speichergröße gibt es für die ausgewählte Konfiguration einige Einschränkungen:

  • Der Wert für vCPUs muss entweder 1 oder eine gerade Zahl im Bereich von 2 bis 32 sein.
  • Der Wert für Speicher muss folgender sein:
    • 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

In folgender Tabelle sind die Namen der Legacy-Maschinentypen, die Anzahl der CPUs, der RAM pro Maschinentyp sowie der resultierende String für den Maschinentyp aufgeführt.

Sie können den entsprechenden Maschinentyp erstellen. Geben Sie dazu in der Google Cloud Console die entsprechende CPU und RAM an oder verwenden Sie die gcloud CLI oder db-custom-#-# in der API.

Legacy-Maschinentyp vCPUs Arbeitsspeicher (MB) db-custom-CPU-RAM-String (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

Problem Fehlerbehebung
Fehlermeldung: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Im zugewiesenen IP-Bereich sind keine weiteren Adressen verfügbar. Es gibt dazu mehrere mögliche Ursachen:

  • Die Größe des zugewiesenen IP-Bereichs für die private Dienstverbindung ist kleiner als /24.
  • Die zugewiesene IP-Adresse für die private Dienstverbindung ist für die Anzahl der Cloud SQL-Instanzen zu klein.
  • Die Anforderungen bezüglich der Größe des zugewiesenen IP-Bereichs sind höher, wenn Instanzen in mehreren Regionen erstellt werden. Siehe Größe des zugewiesenen Bereichs.

Zur Behebung dieses Problems können Sie entweder den vorhandenen zugewiesenen IP-Bereich erweitern oder der privaten Dienstverbindung einen zusätzlichen IP-Bereich zuweisen. Weitere Informationen finden Sie unter IP-Adressbereich zuweisen.

Wenn Sie beim Erstellen der Cloud SQL-Instanz das Flag --allocated-ip-range-name verwendet haben, können Sie nur den angegebenen IP-Bereich erweitern.

Achten Sie beim Zuweisen eines neuen Bereichs darauf, dass sich die Zuweisung nicht mit vorhandenen Zuweisungen überschneidet.

Nachdem Sie einen neuen IP-Bereich erstellt haben, aktualisieren Sie das VPC-Peering mit folgendem Befehl:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Wenn Sie eine bestehende Zuweisung erweitern, müssen Sie darauf achten, dass der Zuweisungsbereich nur vergrößert und nicht verkleinert wird. Wenn die ursprüngliche Zuweisung beispielsweise 10.0.10.0/24 war, sollte die neue Zuweisung mindestens 10.0.10.0/23 lauten.

Wenn Sie von einer /24-Zuweisung ausgehen, ist es im Allgemeinen eine gute Faustregel, /mask für jede Bedingung (zusätzliche Instanztypgruppe, zusätzliche Region) um 1 zu verringern. Wenn Sie beispielsweise versuchen, beide Instanztypgruppen mit derselben Zuweisung zu erstellen, reicht es aus, von /24 zu /23 zu wechseln.

Aktualisieren Sie nach dem Erweitern eines vorhandenen IP-Bereichs das VPC-Peering mit folgendem Befehl:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Fehlermeldung: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Versuchen Sie noch einmal, die Cloud SQL-Instanz zu erstellen.
Fehlermeldung: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Wenn Sie eine Instanz mithilfe einer privaten IP-Adresse erstellen, wird mit der Service Networking API zur richtigen Zeit ein Dienstkonto erstellt. Wenn Sie die Service Networking API erst vor Kurzem aktiviert haben, wird das Dienstkonto möglicherweise nicht erstellt und die Instanzerstellung schlägt fehl. In diesem Fall müssen Sie warten, bis das Dienstkonto im gesamten System verteilt wurde, oder es manuell mit den erforderlichen Berechtigungen hinzufügen.

Nächste Schritte

  1. MySQL-Datenbank auf der Instanz erstellen
  2. MySQL-Nutzer auf der Instanz erstellen
  3. Zugriff auf die Instanz sichern und steuern.
  4. Verbindung zu der Instanz über einen MySQL-Client herstellen
  5. Daten in die Datenbank importieren