2017-08-24 1 views
0

Ich versuche, HTML-Dateien in einer MySQL-Datenbank (mit MySQL Workbench) zu speichern. Im Moment versuche ich load_file('filepath') zu tun, damit der Inhalt der HTML-Datei gelesen und in eine Zeichenfolge konvertiert werden kann und diese Zeichenfolge in der Tabelle in der DB gespeichert wird. Aber das Problem ist, dass es immer Null zurückgibt, so dass ich nicht überprüfen kann, ob es tatsächlich funktioniert.Wie speichert man Dateien in MySQL-Datenbanken mit MySQL Workbench?

Ich weiß, dass es 4 Kriterien gibt, die erfüllt werden müssen, damit load_file funktioniert, aber ich weiß nicht, welche Skripts ich ausführen muss, um die Privilegien zu vergeben. Da ich versuche, den Inhalt der Datei in eine Zeichenfolge umzuwandeln, gibt es vielleicht eine andere Möglichkeit, die gesamte HTML-Datei in der DB zu speichern, und wenn ja, könnte mir jemand zeigen, wie das geht? Mein MySQL-Server hat einen Root-Benutzernamen und arbeitet unter Mac OS.

+0

'Ich weiß nicht, welche Skripts ich ausführen muss, um die Berechtigungen zu gewähren' - Sie müssen nicht die in MySQL Workbench integrierte Funktionalität verwenden, um Benutzern Zugriff zu gewähren. Wenn die Funktion null zurückgibt, hat es nicht funktioniert. Übrigens ist es nicht immer eine gute Idee, Dateien in einer Datenbank zu speichern. – Shadow

+0

@Shadow Also denken Sie, dass es besser ist, die Datei in einem Ordner auf dem Computer zu belassen und den Inhalt in die DB-Tabelle in einen String kopieren zu lassen? Da ich einen Java-Web-Server habe, den ich selbst erstellt habe, möchte ich, dass er sich mit der MySQL-Datenbank verbindet und die Daten/Dateien von dort holt, anstatt den Webserver durch das Verzeichnis des Computers zu durchsuchen. Ich bin mir nicht sicher, ob das, was ich will, das effizienteste ist oder nicht. –

+0

Sie scheinen verschiedene Aspekte hier zu mischen. Worum geht es bei dieser 'load_file'-Funktion? Es hat nichts mit MySQL Workbench oder MySQL zu tun. Was ist dein tatsächliches Problem? Sei genauer und zeig uns, was du bisher versucht hast. –

Antwort

0

The load_file function sagt, dass:

diese Funktion nutzen zu können, muss die Datei auf dem Server-Host befinden, können Sie den vollständigen Pfadnamen in die Datei angeben müssen, und Sie müssen die Berechtigung FILE. Die Datei muss für alle lesbar sein und weniger als max_allowed_packet bytes. Wenn die Systemvariable secure_file_priv auf einen nicht leeren Verzeichnisnamen eingestellt ist, muss sich die zu ladende Datei in diesem Verzeichnis befinden.

So gibt es eine Reihe von Bedingungen zu überprüfen, ob Sie tatsächlich können die Datei laden. Überprüfen Sie zunächst, ob Ihr Benutzer über die Berechtigung FILE verfügt und ob der MySQL-Server auf die Datei zugreifen kann.