Outfile ist seine eigene Erlaubnis in mysql.
Wenn Sie ALLE haben, ist es enthalten.
Wenn Sie jedoch nur eine sichere Sammlung wie SELECT, INSERT, UPDATE, DELETE, DROP, CREATE, aber nicht OUTFILE haben, funktioniert "in outfile" nicht in Abfragen. Der Grund dafür ist, dass der Zugriff auf Dateien innerhalb von MySQL, selbst für Schreibzwecke, gewisse Sicherheitsrisiken birgt, denn wenn Sie von mysql aus auf eine Datei zugreifen, können Sie auf alle Dateien zugreifen, auf die der mysql-Benutzer Zugriff hat. basierte Dateiberechtigungen.
Um dies zu umgehen, können Sie Ihre Abfrage direkt in die Ausgabe der Shell/Sprache ausführen, mit der Sie den SQL Server ausführen.
ist hier ein * nichts Beispiel
>$ echo "select count(predicate),subject from TableA group by subject" | mysql -u yourusername -p yourdatabasename > ~/XYZ/outputfile.txt
Aber tut es alle auf einer Linie ohne „\“ oder „\“ verwenden, um den Zeilenumbruch zu entkommen.
Was passiert hier ist, dass Sie eine Abfrage in den MySQL-Client ausführen und es spuckt das Ergebnis aus, dann leiten Sie die Ausgabe in eine Datei. Also wird die Datei niemals innerhalb von mysql aufgerufen, sondern nach dem Ausführen von mysql.
Also verwenden Sie mysql, um die Informationen zu erhalten und DANN die Daten in die Datei von Ihrer eigenen Benutzer-Shell abzulegen, und alles wird gut.
Oder finden Sie einen Weg, um sich die outfile mysql-Erlaubnis, so oder so.
Was genau machst du? Geben Sie Befehle in die mysql-Clientkonsole oder in das Systemterminal ein? – Vasil
nicht Programmierung bezogen – cletus
Ich gebe Befehle über die MySQL-Konsole – Arnkrishn