MySQL kann den Parameter into outfile verwenden, um die Daten in der Tabelle nach csv zu exportieren. Beispielsweise kann der folgende Befehl verwendet werden, um die Daten der Benutzertabelle nach user.csv zu exportieren
select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';
Nach der Ausführung werden die Benutzertabellendaten nach /tmp/user.csv exportiert.
in die Ausgabedatei „Exportiertes Verzeichnis und Dateiname“
Geben Sie das exportierte Verzeichnis und den Dateinamen an
Felder abgeschlossen durch „Feldtrennzeichen“
Definieren Sie das Trennzeichen zwischen Feldern
optional eingeschlossen durch „Feldtrennzeichen“
Definieren Sie das Zeichen, das das Feld umgibt ( Numerische Felder sind ungültig)
Zeilen, die durch „Interline-Trennzeichen“ abgeschlossen werden
Definieren Sie das Trennzeichen für jede Zeile
Oben Der Befehl wird ohne Probleme ausgeführt unter mysql5.6, aber der folgende Fehler tritt auf, wenn er unter mysql5.7 ausgeführt wird.
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
Sehen Sie sich die offizielle Dokumentation an. Der Parameter secure_file_priv wird verwendet, um einzuschränken, an welches angegebene Verzeichnis LOAD DATA, SELECT …OUTFILE, LOAD_FILE() übergeben wird . Wenn
secure_file_priv NULL ist, bedeutet dies, dass mysqld vom Import oder Export ausgeschlossen ist.
Wenn secure_file_priv /tmp ist, bedeutet dies, dass mysqld nur auf die Ausführung von Import und Export im Verzeichnis /tmp beschränkt ist und es nicht in anderen Verzeichnissen ausführen kann.
secure_file_priv Wenn kein Wert vorhanden ist bedeutet dies, dass mysqld nicht auf den Import und Export in beliebige Verzeichnisse beschränkt ist.
Zeigen Sie den Wert von secure_file_priv an. Der Standardwert ist NULL, was bedeutet, dass die Einschränkung nicht importiert oder exportiert werden kann.
mysql> show global variables like '%secure_file_priv%'; +------------------+-------+| Variable_name | Value | +------------------+-------+| secure_file_priv | NULL | +------------------+-------+1 row in set (0.00 sec)
Da der Parameter secure_file_priv ein schreibgeschützter Parameter ist und nicht mit dem Befehl „set global“ geändert werden kann.
mysql> set global secure_file_priv=''; ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
Öffnen Sie my.cnf oder my.ini, fügen Sie die folgende Anweisung hinzu und starten Sie MySQL neu.
secure_file_priv=''
Änderten Wert von secure_file_priv anzeigen
mysql> show global variables like '%secure_file_priv%'; +------------------+-------+| Variable_name | Value | +------------------+-------+| secure_file_priv | | +------------------+-------+1 row in set (0.00 sec)
Nach der Änderung erneut ausführen und erfolgreich exportieren.
mysql> select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n'; Query OK, 15 rows affected (0.00 sec)
mysql kann den Parameter into outfile verwenden, um die Daten in der Tabelle nach CSV zu exportieren. Beispielsweise kann der folgende Befehl verwendet werden, um die Daten der Benutzertabelle nach Benutzer zu exportieren. csv
select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';
Nach der Ausführung werden die Daten der Benutzertabelle nach /tmp/user.csv exportiert.
In diesem Artikel wird die Lösung für das Problem der MySQL5.7-Exportdatenaufforderung mit der Option --secure-file-priv erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
PHP verwendet die debug_backtrace-Methode, um Codeaufrufe zu verfolgen
MySQL führt SQL im Terminal aus und schreibt Die Ergebnisdateimethode
Das obige ist der detaillierte Inhalt vonLösung für das Problem mit der MySQL-Secure-File-Priv-Option. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!