Die Migration von Datenbanken kann unerwartete Herausforderungen mit sich bringen, da einige Funktionen möglicherweise nicht mehr wie erwartet funktionieren. Im Fall von MySQL funktioniert die SELECT * INTO OUTFILE-Anweisung, die einmal zum Exportieren von Daten in eine Textdatei verwendet wurde, aus Sicherheitsgründen nicht mehr.
Die LOAD DATA INFILE-Anweisung kann jedoch in LOAD DATA geändert werden LOCAL INFILE ermöglicht den Import von Daten aus einer lokalen Datei. Da stellt sich die Frage: Warum gibt es kein entsprechendes SELECT INTO OUTFILE LOCAL?
Laut MySQL-Handbuch ist SELECT * INTO OUTFILE in erster Linie für die schnelle Generierung von Textdateien auf dem Server gedacht. Das Erstellen von Dateien auf Remote-Clients ist jedoch aus Sicherheitsgründen nicht zulässig.
Alternativ kann der folgende Befehl verwendet werden, um Dateien auf dem Client-Host zu generieren:
mysql -h my.db.com -u username -p password db_name -e'SELECT foo FROM bar' > /tmp/myfile.txt
Bezüglich MariaDB scheint es keine direkte Lösung für dieses Problem zu bieten. Es bietet jedoch zusätzliche Sicherheitsfunktionen für die Datenübertragung, beispielsweise die Möglichkeit, den Dateizugriff auf bestimmte Benutzer oder IP-Adressen zu beschränken.
Das obige ist der detaillierte Inhalt vonWarum bietet MySQL kein „SELECT * INTO OUTFILE LOCAL'-Äquivalent an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!