FEHLER in Zeile 1: Unbekannter Befehl „\-“. (GELÖST)
Die Datenbankmanagementsysteme (DBMS) MariaDB und MySQL sind (zumindest in der Grundfunktionalität) durchaus miteinander kompatibel. Und bis vor kurzem war der Import und Export von Datenbanken von MariaDB nach MySQL und umgekehrt problemlos möglich.
Wenn Sie MariaDB auf die neueste Version aktualisiert haben, erhalten Sie beim Importieren einer Datenbank in MySQL oder ältere Versionen von MariaDB möglicherweise die folgende Fehlermeldung:
ERROR at line 1: Unknown command '\-'.
Die gute Nachricht ist, dass dieser Fehler sehr einfach zu beheben ist.
Dieser Fehler wird durch die folgende Kommentarzeile in der Datei verursacht, die die importierte Datenbank oder Tabelle enthält:
/*!999999\- enable the sandbox mode */
Das heißt, der Fehler wird durch die Zeichenfolge „\-“ verursacht, die sich im Kommentar befindet und die der MySQL-Server als Befehl wahrnimmt, der diesem Server nicht bekannt ist. Diese Kommentarzeile (sowie alle anderen Kommentare) kann entfernt werden, ohne dass wesentliche Daten verloren gehen.
Sie können die .sql-Datei manuell mit der Datenbank öffnen, um diese Zeile (es ist die erste) zu importieren und zu entfernen.
Da die problematische Zeile die erste in der Datenbankimportdatei ist, kann sie mit dem folgenden Befehl in der Befehlszeile entfernt werden (ersetzen Sie DB.sql durch den Namen der Datenbankdatei):
sed -i '1d' DB.sql
Siehe auch: So entfernen Sie die erste Zeile aus einer Datei in der Befehlszeile. So entfernen Sie die ersten 2, 3 oder eine beliebige andere Anzahl von Zeilen aus einer Datei
Dieses Problem tritt beim Importieren von Datenbanken auf, die aus MariaDB 11.4.2 (und wahrscheinlich späteren Versionen) exportiert wurden.
Eine dauerhafte Lösung (damit ich nicht jedes Mal die erste Zeile löschen muss) in Form einer MariaDB-Einstellung oder -Option habe ich nicht gefunden.
Beim Exportieren von Tabellen und Datenbanken nach phpMyAdmin tritt dieses Problem nicht auf, selbst wenn MariaDB verwendet wird. Dieses Problem tritt nur beim Exportieren mit mariadb-dump auf.
Wenn Sie den Export- und Löschvorgang der ersten Zeile in einem Befehl ausführen möchten, ist dies möglich.
Zum Beispiel der Exportbefehl
mariadb-dump -u root -p TestDB TestTABLE > testdb.sql
Sie müssen es durch den folgenden Befehl ersetzen, wodurch die exportierte Datenbank ebenfalls in einer Datei gespeichert wird, aber die erste Zeile mit dem problematischen Kommentar gelöscht wird:
mariadb-dump -u root -p TestDB TestTABLE | sed '1d' > testdb.sql
In diesem Befehl:
- -u root ist der Benutzername (root durch Ihren tatsächlichen Benutzernamen ersetzen)
- -p fordert zur Eingabe des Datenbankbenutzerkennworts auf
- TestDB ist der Datenbankname
- TestTABLE ist der Name der exportierten Tabelle (wenn nicht angegeben, werden alle Tabellen exportiert)
- testdb.sql ist der Name der Datei, in der die exportierte Datenbank gespeichert wird.
Wenn Sie möchten, können Sie der exportierten Datenbank eine Komprimierung hinzufügen, um den folgenden Befehl zu archivieren:
mariadb-dump -u root -p TestDB TestTABLE | sed '1d' | zip testdb.zip -