Daten in Cloud SQL importieren

Auf dieser Seite wird beschrieben, wie Sie Daten in Cloud SQL-Instanzen importieren. Sie können Daten aus SQL-Dump- oder CSV-Dateien importieren.

Best Practices zum Importieren von Daten finden Sie unter Best Practices zum Importieren und Exportieren von Daten.

Daten aus einer SQL-Dumpdatei in Cloud SQL importieren

Hinweis

  • Prüfen Sie, ob die erforderlichen Rollen und Berechtigungen konfiguriert sind.
  • Erstellen Sie eine SQL-Dumpdatei. Folgen Sie unten der Anleitung, die auf Ihre Situation zutrifft. In dieser Anleitung werden bestimmte Flags festgelegt, durch die die Dumpdatei mit Cloud SQL kompatibel werden.

  • Beim Importvorgang werden SQL-Befehle in der sqldump-Datei ausgeführt, z. B. das Löschen und Neuerstellen von Tabellen, Einträgen und Indexen. Informationen zum Erstellen einer Datenbank finden Sie unter Datenbank erstellen.
  • Verwenden Sie Systemnutzer (z. B. root@localhost) nicht als DEFINER für Trigger, Ansichten oder gespeicherte Verfahren. Sie haben in Cloud SQL keinen Zugriff auf diesen Nutzer.
  • Wenn Ihre SQL-Dumpdatei DEFINER-Klauseln (Ansichten, Trigger oder gespeicherte Prozeduren) enthält, kann der Import abhängig davon, in welcher Reihenfolge diese Anweisungen ausgeführt werden, fehlschlagen. Weitere Informationen zur Verwendung von DEFINER in Cloud SQL und zu möglichen Problemumgehungen finden Sie in diesem Artikel.
  • Informationen zum Erstellen einer SQL-Dumpdatei, die in Cloud SQL importiert werden kann, finden Sie unter SQL-Dumpdatei erstellen.

Daten aus einer SQL-Dumpdatei in Cloud Storage importieren

So importieren Sie Daten aus einer SQL-Dumpdatei in eine Cloud SQL-Instanz:

Console

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

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Klicken Sie in der Schaltflächenleiste auf Importieren.
  4. Geben Sie unter Wählen Sie die Datei aus, aus der Sie Daten importieren möchten den Pfad zum Bucket und zur SQL-Dumpdatei für den Import ein. Oder öffnen Sie die Datei:
    1. Klicken Sie auf Durchsuchen.
    2. Klicken Sie unter Speicherort doppelt auf den Namen des Buckets in der Liste.
    3. Wählen Sie die Datei in der Liste aus.
    4. Klicken Sie auf Auswählen.

    Sie können eine komprimierte Datei (.gz) oder eine unkomprimierte Datei (.sql) importieren.

  5. Wählen Sie unter Format die Option SQL aus.
  6. Wählen Sie die Datenbank aus, in die die Daten importiert werden sollen.

    Dadurch führt Cloud SQL vor dem Import die Anweisung USE DATABASE aus.

  7. Klicken Sie auf Importieren, um den Import zu starten.

gcloud

  1. Erstellen Sie einen Cloud Storage-Bucket, falls noch nicht geschehen.

    Informationen zum Erstellen eines Buckets finden Sie unter Storage-Buckets erstellen.

  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Beschreiben Sie die Instanz, in die Sie Daten importieren:
    gcloud sql instances describe [INSTANCE_NAME]
    
  4. Kopieren Sie das Feld serviceAccountEmailAddress.
  5. Weisen Sie mit gsutil iam die IAM-Rolle storage.objectAdmin dem Dienstkonto für den Bucket zu.
      gsutil iam ch serviceAccount:[SERVICE-ACCOUNT]:objectAdmin \
      gs://[BUCKET-NAME]
      
    Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  6. Importieren Sie die Datenbank:
    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                                --database=[DATABASE_NAME]
    

    Informationen zum Verwenden des Befehls import sql finden Sie auf der Referenzseite des Befehls sql import sql.

    Wenn durch den Befehl ein Fehler wie ERROR_RDBMS zurückgegeben wird, prüfen Sie die Berechtigungen. Dieser Fehler wird oft durch Berechtigungsprobleme verursacht.

  7. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit gsutil iam.

REST v1beta4

    Erstellen Sie eine SQL-Dumpdatei. Folgen Sie unten der Anleitung, die auf Ihre Situation zutrifft. In dieser Anleitung werden bestimmte Flags festgelegt, durch die die Dumpdatei mit Cloud SQL kompatibel werden.

  1. Erstellen Sie einen Cloud Storage-Bucket, falls noch nicht geschehen.

    Informationen zum Erstellen eines Buckets finden Sie unter Storage-Buckets erstellen.

  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Weisen Sie Ihrer Instanz die IAM-Rolle storage.objectAdmin für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  4. Importieren Sie die Dumpdatei:

    Bevor Sie die unten aufgeführten Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_sql_file: der Pfad zur SQL-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz

    HTTP-Methode und URL:

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

    JSON-Text anfordern:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Die vollständige Parameterliste für diese Anfrage finden Sie auf der Seite instances:import.
  5. Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.
Informationen zum Erstellen der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite „Instanzimporte“.

Daten aus CSV-Dateien in Cloud SQL importieren

Hinweis

  • Prüfen Sie, ob die erforderlichen Rollen und Berechtigungen konfiguriert sind.
  • Die Datenbank und die Tabelle, in die der Import erfolgen soll, müssen in der Cloud SQL-Instanz bereits vorhanden sein. Informationen zum Erstellen einer Datenbank finden Sie unter Datenbank erstellen. Verwenden Sie zum Erstellen einer Tabelle die SQL-Anweisung CREATE TABLE im mysql-Client.
  • Ihre CSV-Datei muss den im nächsten Abschnitt dargestellten Formatanforderungen an CSV-Dateien entsprechen.

    Wenn die Datei diese Anforderungen nicht erfüllt, können Sie stattdessen mit der Anweisung LOAD DATA LOCAL INFILE im mysql-Client eine lokale Datei in die Datenbank laden. Dazu muss die Option --local-infile für den mysql-Client verwendet werden.

  • Wenn Sie Daten importieren, die Sie von einem lokalen MySQL-Server exportiert haben:
    1. Erstellen Sie einen Bucket in Cloud Storage. Folgen Sie dazu der Anleitung unter Storage-Buckets erstellen.
    2. Laden Sie die SQL-Dumpdatei in den Cloud Storage-Bucket hoch. Gehen Sie dabei wie unter Objekte hochladen beschrieben vor.

Formatanforderungen an CSV-Dateien

Die CSV-Dateien müssen eine Zeile pro Datensatz und durch Kommas getrennte Felder haben.

Das von Cloud SQL akzeptierte Format von CSV-Dateien entspricht der Verwendung der folgenden MySQL-Anweisungen:

  LOAD DATA INFILE ... CHARACTER SET 'utf8mb4'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"'.

Beim Erstellen einer CSV-Datei in diesem Format müssen Sie beim Exportieren der Daten aus einer vorhandenen Datenbank dafür sorgen, dass für den Export dieselben Optionen oder Trennzeichen verwendet werden, die von Cloud SQL für den Import verwendet werden. Ein Beispiel finden Sie unter CSV-Datei erstellen.

Daten aus einer CSV-Datei in Cloud Storage importieren

So importieren Sie Daten aus einer CSV-Datei in eine Cloud-SQL-Instanz:

Console

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

    Zur Seite „Cloud SQL-Instanzen“

  2. Wählen Sie die Instanz aus, um die zugehörige Übersichtsseite zu öffnen.
  3. Klicken Sie in der Schaltflächenleiste auf Importieren.
  4. Geben Sie unter Wählen Sie die Datei aus, aus der Sie Daten importieren möchten den Pfad zum Bucket und zur CSV-Datei für den Import ein. Oder öffnen Sie die Datei:
    1. Klicken Sie auf Durchsuchen.
    2. Klicken Sie unter Speicherort doppelt auf den Namen des Buckets in der Liste.
    3. Wählen Sie die Datei in der Liste aus.
    4. Klicken Sie auf Auswählen.

    Sie können eine komprimierte Datei (.gz) oder eine unkomprimierte Datei (.csv) importieren.

  5. Wählen Sie unter Format die Option CSV aus.
  6. Geben Sie die Datenbank und die Tabelle in der Cloud SQL-Instanz an, in die die CSV-Datei importiert werden soll.
  7. Sie können optional einen Nutzer für den Import angeben.
  8. Klicken Sie auf Importieren, um den Import zu starten.

gcloud

  1. Erstellen Sie einen Cloud Storage-Bucket, falls noch nicht geschehen.

    Informationen zum Erstellen eines Buckets finden Sie unter Storage-Buckets erstellen.

  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Laden Sie Daten aus der CSV-Datei in den Bucket hoch.
  4. Geben Sie die Instanz an, aus der Sie exportieren möchten:
    gcloud sql instances describe [INSTANCE_NAME]
    
  5. Kopieren Sie das Feld „serviceAccountEmailAddress“.
  6. Weisen Sie mit gsutil iam die IAM-Rolle storage.objectAdmin dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  7. Importieren Sie die Datei:
    gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                --database=[DATABASE_NAME] --table=[TABLE_NAME]
    

    Informationen zum Verwenden des Befehls import csv finden Sie auf der Referenzseite des Befehls sql import csv.

  8. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit gsutil iam.

REST v1beta4

  1. Erstellen Sie einen Cloud Storage-Bucket, falls noch nicht geschehen.

    Informationen zum Erstellen eines Buckets finden Sie unter Storage-Buckets erstellen.

  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Weisen Sie Ihrer Instanz die IAM-Rolle storage.objectAdmin für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  4. Importieren Sie die Datei:

    Bevor Sie die unten aufgeführten Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_csv_file: der Pfad zur CSV-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz
    • table_name: der Name der Datenbanktabelle

    HTTP-Methode und URL:

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

    JSON-Text anfordern:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name"
           }
       }
    }
    
    

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Die vollständige Parameterliste für diese Anfrage finden Sie auf der Seite instances:import.
  5. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.

Wenn ein Fehler wie z. B. ERROR_RDBMS angezeigt wird, prüfen Sie, ob die Tabelle vorhanden ist. Ist die Tabelle vorhanden, sollten Sie ermitteln, ob Sie die richtigen Berechtigungen für den Bucket haben. Hilfe zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.

Informationen zum Erstellen der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite "Instanzimporte".

Erforderliche Rollen und Berechtigungen

Dazu müssen Sie eine Datei aus Cloud Storage importieren. Zum Importieren von Daten aus Cloud Storage muss das Dienstkonto der Cloud SQL-Instanz oder der Nutzer die Cloud SQL-Administrator-Rolle oder eine benutzerdefinierte Rolle einschließlich der cloudsql.instances.import-Berechtigung und zumindest die roles/storage.legacyBucketReader-IAM-Rolle haben.

Wenn mit dem Konto oder Nutzer auch Exportvorgänge ausgeführt werden, weisen Sie die IAM-Rolle „Storage-Objekt-Administrator“ (storage.objectAdmin) zu. Informationen zu IAM-Rollen finden Sie unter Cloud Identity and Access Management für Cloud Storage.

Sie finden den Dienstkontonamen der Instanz in der Google Cloud Console auf der Seite Übersicht Ihrer Instanz. Sie können die Rollen für Ihren Cloud Storage-Bucket mit dem gsutil-Tool überprüfen:

gsutil iam get gs://[BUCKET_NAME]

Weitere Informationen zur Verwendung von IAM mit Buckets

Fehlerbehebung

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

Problem Mögliche Ursache Lösungsvorschlag
Der Status des Vorgangs wird nicht angezeigt. Auf der Benutzeroberfläche wird nur Erfolg oder Fehler angezeigt. Verwenden Sie diese Datenbankbefehle, um mehr zu erfahren.
408 Error (Timeout) beim Exportieren. Der SQL-Export kann je nach Datenbankgröße und Exportinhalt lange dauern. Verwenden Sie mehrere CSV-Exporte, um die Größe der einzelnen Vorgänge zu reduzieren.
CSV-Export funktioniert, SQL-Export schlägt jedoch fehl. Beim SQL-Export treten mit größerer Wahrscheinlichkeit Kompatibilitätsprobleme mit Cloud SQL auf. Verwenden Sie CSV-Exporte, um nur das zu exportieren, was Sie benötigen.
Export dauert zu lange. Cloud SQL unterstützt keine gleichzeitigen synchronen Vorgänge. Verwenden Sie die Exportauslagerung. Weitere Informationen
Import dauert zu lange. Zu viele aktive Verbindungen können Importvorgänge beeinträchtigen. Schließen Sie nicht verwendete Verbindungen oder starten Sie die Cloud SQL-Instanz neu, bevor Sie einen Importvorgang starten.
Error 1412: Table definition has changed. Die Tabelle wurde während des Exports geändert. Entfernen Sie alle Tabellenänderungsanweisungen aus dem Dump-Vorgang.
Import schlägt fehl. Die exportierte Datei kann Datenbanknutzer enthalten, die noch nicht vorhanden sind. Bereinigen Sie die fehlgeschlagene Datenbank, bevor Sie den Import wiederholen. Erstellen Sie die Datenbanknutzer, bevor Sie den Import ausführen.
Verbindung während des Exportvorgangs getrennt. Die Abfrage muss innerhalb der ersten sieben Minuten Daten liefern. Testen Sie die Abfrage manuell. Weitere Informationen
Unbekannter Fehler beim Export. Mögliches Bandbreitenproblem. Die Instanz und der Cloud Storage-Bucket müssen sich in derselben Region befinden.
Sie möchten Exporte automatisieren. Cloud SQL bietet keine Möglichkeit, Exporte zu automatisieren. Erstellen Sie Ihre eigene Pipeline, um diese Funktion zu nutzen. Weitere Informationen
ERROR_RDBMS: system error occurred. Cloud Storage-Berechtigungen oder nicht vorhandene Tabelle. Prüfen Sie die Berechtigungen ODER ob die Tabelle vorhanden ist.
Fehler beim Import: Tabelle ist nicht vorhanden. Eine erforderliche Tabelle ist derzeit nicht vorhanden. Deaktivieren Sie FOREIGN_KEY_CHECKS zu Beginn des Imports.
Fehlermeldung: Access denied; you need (at least one of) the SUPER privilege(s) for this operation. Es kann ein Ereignis, eine Ansicht, eine Funktion oder eine Prozedur in der Dumpdatei mit superuser@localhost (wie root@localhost) vorhanden sein. Dies wird von Cloud SQL nicht unterstützt. Weitere Informationen zur Verwendung von DEFINER in Cloud SQL und zu möglichen Problemumgehungen finden Sie in diesem Artikel.
Fehlermeldung: ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost'. In der Dumpdatei ist ein DEFINER vorhanden, den es in der Datenbank nicht gibt. Weitere Informationen zur Verwendung von DEFINER in Cloud SQL und zu möglichen Problemumgehungen finden Sie in diesem Artikel.
Fehlermeldung: Unknown table 'COLUMN_STATISTICS' in information_schema. Dies geschieht, wenn Sie die Binärdatei mysqldump von MySQL 8.0 verwenden, um Daten aus einer MySQL 5.7-Datenbank zu dumpen und in eine MySQL 8.0-Datenbank zu importieren. Wenn Sie Daten aus einer MySQL 5.7-Datenbank ausgeben und in eine MySQL 8.0-Datenbank importieren, müssen Sie die Binärprogramm mysqldump von MySQL 5.7 verwenden. Wenn Sie die Binärprogramm mysqldump von MySQL 8.0 verwenden, müssen Sie das Flag --column-statistics=0 hinzufügen.

Status des Vorgangs wird nicht angezeigt

Sie können den Status eines laufenden Vorgangs nicht sehen.

Mögliche Ursache

Die Google Cloud Console meldet nur erfolgreiche oder fehlgeschlagene Vorgänge und gibt keine Warnungen zurück.

Lösungsvorschlag

Stellen Sie eine Verbindung zur Datenbank her und führen Sie SHOW WARNINGS aus.


Fehler 408: (Zeitüberschreitung) beim Export

Beim Ausführen eines Exportjobs in Cloud SQL ist die Fehlermeldung 408 Error (Timeout) zu sehen.

Mögliche Ursache

CSV- und SQL-Formate werden auf unterschiedliche Weise exportiert. Im SQL-Format wird die gesamte Datenbank exportiert, was wahrscheinlich länger dauert. Mit dem CSV-Format können Sie festlegen, welche Elemente der Datenbank in den Export einbezogen werden sollen.

Lösungsvorschlag

Verwenden Sie das CSV-Format und führen Sie mehrere kleinere Exportjobs aus, um die Größe und Länge der einzelnen Vorgänge zu reduzieren.


CSV-Export funktioniert, SQL-Export schlägt jedoch fehl

Der CSV-Export funktioniert, der SQL-Export schlägt jedoch fehl.

Mögliche Ursache

CSV- und SQL-Formate werden auf unterschiedliche Weise exportiert. Im SQL-Format wird die gesamte Datenbank exportiert, was wahrscheinlich länger dauert. Mit dem CSV-Format können Sie festlegen, welche Elemente der Datenbank in den Export einbezogen werden sollen.

Lösungsvorschlag

Verwenden Sie CSV-Exporte, um nur das zu exportieren, was Sie benötigen.


Export dauert zu lange

Der Export dauert zu lange und andere Vorgänge werden blockiert.

Mögliche Ursache

Cloud SQL unterstützt keine gleichzeitigen synchronen Vorgänge.

Lösungsvorschlag

Versuchen Sie, kleinere Datasets nacheinander zu exportieren.


Import dauert zu lange

Der Import dauert zu lange und blockiert andere Vorgänge.

Mögliche Ursache

Zu viele aktive Verbindungen können Importvorgänge beeinträchtigen. Verbindungen beanspruchen CPU und Arbeitsspeicher, was die verfügbaren Ressourcen begrenzt.

Lösungsvorschlag

Schließen Sie nicht verwendete Vorgänge. Prüfen Sie die CPU- und Arbeitsspeichernutzung, um dafür zu sorgen, dass genügend Ressourcen verfügbar sind. Die beste Methode, maximale Ressourcen für den Importvorgang zu gewährleisten, ist ein Neustart der Instanz vor Beginn des Vorgangs. Ein Neustart

  • beendet alle Verbindungen und
  • beendet alle Aufgaben, die möglicherweise Ressourcen nutzen.


mysqldump: Fehler 1412: Die Tabellendefinition wurde geändert

Die Fehlermeldung mysqldump: Error 1412: Table definition has changed, retry transaction when dumping the table wird angezeigt.

Mögliche Ursache

Während des Exportvorgangs wurde die Tabelle geändert.

Lösungsvorschlag

Die Dump-Transaktion kann fehlschlagen, wenn Sie während des Exportvorgangs die folgenden Anweisungen verwenden:

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE
Entfernen Sie alle diese Anweisungen aus dem Dump-Vorgang.


Import schlägt fehl

Der Import schlägt fehl, wenn ein oder mehrere Nutzer, auf die in der exportierten SQL-Dumpdatei verwiesen wird, nicht vorhanden sind.

Mögliche Ursache

Vor dem Import eines SQL-Dumps müssen alle Datenbanknutzer vorhanden sein, die Inhaber von Objekten sind oder Berechtigungen für Objekte in der gespeicherten Datenbank erhalten haben. Andernfalls werden die Objekte mit den ursprünglichen Inhaberrechten und/oder Berechtigungen nicht wiederhergestellt.

Lösungsvorschlag

Bereinigen Sie die fehlgeschlagene Datenbank, bevor Sie den Import wiederholen. Erstellen Sie die Datenbanknutzer, bevor Sie den SQL-Dump importieren.


Verbindung während des Exportvorgangs getrennt

Die Verbindung wurde während des Exportvorgangs getrennt.

Mögliche Ursache

Bei der Verbindung zu Cloud Storage kann es zu einer Zeitüberschreitung kommen, da die im Export ausgeführte Abfrage innerhalb der ersten sieben Minuten nach dem Start des Exports keine Daten erzeugt.

Lösungsvorschlag

Testen Sie die Abfrage manuell. Stellen Sie dazu eine Verbindung von einem beliebigen Client aus her und senden Sie die Ausgabe der Abfrage mit dem folgenden Befehl an STDOUT:

COPY (INSERT_YOUR_QUERY_HERE) TO STDOUT WITH ( FORMAT csv, DELIMITER ',', ENCODING 'UTF8', QUOTE '"', ESCAPE '"' )

Dies ist das erwartete Verhalten, da der Client sofort nach dem Start des Exports mit dem Senden von Daten beginnen soll. Werden keine Daten gesendet, wird die Verbindung getrennt. Dies führt dazu, dass der Export fehlschlägt und der Vorgang in einem unsicheren Zustand bleibt. Dies ist auch in der Fehlermeldung von gcloud zu sehen:

operation is taking longer than expected


Unbekannter Fehler beim Export

Beim Exportieren einer Datenbank in einen Cloud Storage-Bucket ist die Fehlermeldung Unknown error zu sehen.

Mögliche Ursache

Die Übertragung kann aufgrund eines Bandbreitenproblems fehlschlagen.

Lösungsvorschlag

Die Cloud SQL-Instanz befindet sich möglicherweise in einer anderen Region als der Cloud Storage-Bucket. Das Lesen und Schreiben von Daten von einem Kontinent auf einen anderen verursacht eine hohe Netzwerkauslastung, wodurch zeitweise Probleme wie diese auftreten können. Prüfen Sie die Regionen Ihrer Instanz und Ihres Buckets.


Sie möchten Exporte automatisieren

Sie möchten Exporte automatisieren.

Mögliche Ursache

Cloud SQL bietet keine Möglichkeit, Exporte zu automatisieren.

Lösungsvorschlag

Sie können Ihr eigenes automatisiertes Exportsystem mit Google Cloud-Produkten wie Cloud Scheduler, Pub/Sub und Cloud Functions erstellen.


Systemfehler "ERROR_RDBMS"

Folgende Fehlermeldung ist zu sehen: [ERROR_RDBMS] system error occurred.

Mögliche Ursache

  • Der Nutzer hat eventuell nicht alle erforderlichen Cloud Storage-Berechtigungen.
  • Die Datenbanktabelle ist möglicherweise nicht vorhanden.

Lösungsvorschlag

  1. Prüfen Sie, ob Sie mindestens WRITER-Berechtigungen für den Bucket und READER-Berechtigungen für die Exportdatei haben. Weitere Informationen zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.
  2. Prüfen Sie, ob die Tabelle vorhanden ist. Falls die Tabelle vorhanden ist, sollten Sie nachsehen, ob Sie die richtigen Berechtigungen für den Bucket haben.

Fehler beim Import: Tabelle ist nicht vorhanden

Ein Importvorgang schlägt mit der Fehlermeldung fehl, dass keine Tabelle vorhanden ist.

Mögliche Ursache

Tabellen können Fremdschlüsselabhängigkeiten von anderen Tabellen haben. Abhängig von der Reihenfolge der Vorgänge kann eine oder mehrere dieser Tabellen während des Importvorgangs noch nicht vorhanden sein.

Lösungsvorschlag

Fügen Sie am Anfang der Dumpdatei die folgende Zeile hinzu:

  SET FOREIGN_KEY_CHECKS=0;

Fügen Sie außerdem am Ende der Dumpdatei die folgende Zeile hinzu:

  SET FOREIGN_KEY_CHECKS=1;

Mit diesen Einstellungen werden Datenintegritätsprüfungen während des Importvorgangs deaktiviert und nach dem Laden der Daten wieder aktiviert. Dies wirkt sich nicht auf die Integrität der Daten in der Datenbank aus, da die Daten bereits beim Erstellen der Dumpdatei validiert wurden.


Zugriff verweigert. Sie benötigen für diesen Vorgang mindestens eine der SUPER-Berechtigungen

Der Fehler Access denied; you need (at least one of) the SUPER privilege(s) for this operation wird angezeigt.

Mögliche Ursache

Es kann ein Ereignis, eine Ansicht, eine Funktion oder eine Prozedur in der Dumpdatei mit superuser@localhost (wie root@localhost) vorhanden sein. Dies wird von Cloud SQL nicht unterstützt.

Lösungsvorschlag

Informationen dazu finden Sie in diesem Dokument zum Importieren einer Datenbank mit DEFINER-Klauseln.


Fehlermeldung: ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost'

Der Fehler ERROR 1045 (28000) at line {line_number}: Access denied for user 'cloudsqlimport'@'localhost' wird angezeigt.

Mögliche Ursache

Die Ursache ist, dass ein Nutzer in der Dumpdatei mit der DEFINER-Klausel nicht in der Datenbank vorhanden ist und dass auf diesen Nutzer in den Objektdefinitionen der Datenbank verwiesen wird.

Lösungsvorschlag

Informationen dazu finden Sie in diesem Dokument zum Importieren einer Datenbank mit DEFINER-Klauseln in der Dumpdatei. Möglicherweise müssen Sie zuerst einen oder mehrere Nutzer in der Datenbank erstellen.


Fehlermeldung: Unbekannte Tabelle „COLUMN_STATISTICS“ in information_schema

Die Fehlermeldung Unknown table 'COLUMN_STATISTICS' in information_schema wird angezeigt.

Mögliche Ursache

Dies geschieht, wenn Sie die Binärdatei mysqldump von MySQL 8.0 verwenden, um Daten aus einer MySQL 5.7-Datenbank zu dumpen und in eine MySQL 8.0-Datenbank zu importieren.

Lösungsvorschlag

Wenn Sie Daten aus einer MySQL 5.7-Datenbank ausgeben und in eine MySQL 8.0-Datenbank importieren, müssen Sie die Binärprogramm mysqldump von MySQL 5.7 verwenden. Wenn Sie die Binärprogramm mysqldump von MySQL 8.0 verwenden, müssen Sie das Flag --column-statistics=0 hinzufügen.


Nächste Schritte