Auflösen des Befehls mySQL "Fehler nicht zulässig" beim Laden von Daten
Begegnet auf den MySQL -Fehler "Fehler 1148: Der verwendete Befehl ist mit dieser MySQL -Version nicht zulässig", während LOAD DATA LOCAL
das Schlüsselwort LOCAL
deaktiviert ist. Dies ist eine Sicherheitsmaßnahme. Um Daten lokal zu laden, müssen Sie die Option local-infile
explizit aktivieren.
clientseitige Lösung:
Die einfachste Lösung besteht darin, local-infile
zu aktivieren, wenn Sie eine Verbindung zu Ihrem MySQL -Server herstellen:
<code class="language-bash">mysql -u myuser -p --local-infile mydatabase</code>
Ersetzen Sie myuser
durch Ihren MySQL -Benutzernamen, -p
Eingabeaufforderungen für Ihr Passwort und mydatabase
mit dem Namen Ihrer Datenbank.
Wichtiger Sicherheitshinweis: Aktivieren local-infile
Einführt eine Sicherheitsanfälligkeit. Aktivieren Sie es nur, wenn Sie es unbedingt notwendig machen, und deaktivieren Sie es anschließend.
serverseitige Lösung (dauerhafter, aber vorsichtig):
für eine dauerhaftere Lösung finden Sie local-infile
auf dem MySQL -Server selbst. Dies erfordert die Änderung der MySQL -Konfigurationsdatei (my.cnf
unter Linux/macOS, my.ini
unter Windows). Extreme Vorsicht walten lassen beim Ändern der Serverkonfigurationsdateien. Falsche Änderungen können die Sicherheit Ihres Servers beeinträchtigen.
Fügen oder ändern Sie die folgende Zeile in Ihrer my.cnf
-Datei:
<code>loose-local-infile = 1</code>
Starten Sie dann Ihren MySQL -Server neu, damit die Änderungen wirksam werden. Nach Abschluss des Datenes wird dringend empfohlen, loose-local-infile
auf 0 zurückzulegen oder die Zeile zu entfernen, um das Sicherheitsrisiko zu mildern.
Alternativer Ansatz (empfohlen):
Die sicherste und allgemein bevorzugte Methode besteht darin, LOAD DATA LOCAL
insgesamt zu vermeiden. Verwenden Sie stattdessen eine Methode, bei der Daten nicht direkt aus dem lokalen Dateisystem des Clients geladen werden. Dies könnte:
mysqlimport
: Dieses Befehlszeilen-Tool ist eine sicherere Alternative zum Importieren von Daten aus einer Datei. scp
, sftp
oder anderen sicheren Dateiübertragungsmethoden auf den Server hoch und verwenden Sie dann LOAD DATA INFILE
(ohne die LOCAL
Schlüsselwort) zum Laden der Daten aus dem Dateisystem des Servers. Denken Sie daran, die Sicherheit bei der Arbeit mit Datenbanken immer zu priorisieren. Das Aktivieren von local-infile
sollte eine vorübergehende Maßnahme sein, und die alternativen Ansätze sind im Allgemeinen sicherer und für die Ladedatenbelastung empfohlen.
Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler 'Befehl nicht mit MySQL -Version zulässig' bei Verwendung von Lastdaten lokal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!