textfile in mysql einfügen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

textfile in mysql einfügen

Postby Guest » 04. February 2003 19:37

hi,

möchte den inhalt einer csv textdatei in meine mysqldb übertragen, mit phpmyadmin bekomme ich folgende fehlermeldung:

LOAD DATA LOCAL INFILE 'tabelleninhalt.txt' REPLACE INTO TABLE `tabellenname`
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'

MySQL meldet:
The used command is not allowed with this MySQL version

mit allen anderen programmen auch.

unterstüzt mysql etwa das einfügen von daten aus komagetrennten textfiles?


brauche dringend hilfe! :shock:
Guest
 

Postby Oswald » 04. February 2003 20:17

Hallo Gast!

Du kannst dieser Import funktioniert nicht über phpMyAdmin. Das von Dir erwähnte Kommando geht nur im MySQL-Monitor. Der MySQL-Monitor ist das Programm mysql.

Unter LAMPP kannst Du es mit /opt/lampp/bin/mysql aufrufen unter WAMPP sollte er unter \wamppXXX\mysql\bin\mysql.exe zu finden sein. ("Sollte" weil ich zugeben muss, dass ich ihn unter meiner WAMPP 0.2.6 grad nicht finden kann.)

Liebe Grüße,
Oswald ;)
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby boppy » 04. February 2003 23:03

Kai Seidler wrote:Hallo Gast!

Du kannst dieser Import funktioniert nicht über phpMyAdmin.
Ich bin noch nicht 100%ig dahinter gestiegen, was der satz nun wirklich bedueten soll, aber das einfügen von CVS Daten per phpMyAdmin funktioniert (wampp25c (nicht modifiziert)).

Also ist die fehlermeldung entstanden, weil du was falsch gemacht hast (würd ich mal sagen :))
...in diesem Sinne
yours boppy

Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
User avatar
boppy
AF Moderator
 
Posts: 501
Joined: 27. December 2002 02:15
Location: W-E-City

Postby Oswald » 05. February 2003 10:58

Boppy! :oops:

Du kannst dieser Import funktioniert nicht über phpMyAdmin.


Das sollte eigentlich heißen: "Diese Import-Funktion funktioniert nicht über phpMyAdmin."

Die Fehlermeldung ist nicht gekommen weil der Befehl falsch wäre. Im Prinzip ist der Befehl so richtig und gut. Allerdings funktioniert er nicht via phpMyAdmin, sondern nur im MySQL-Monitor.

Das ist das, was ich zu sagen versuchte. ;)

Grüße,
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby boppy » 05. February 2003 15:00

Soo, nach kurzem gespräch mit Kai will ich kurz mal erklären, was hier so alles (schief) läuft :lol:

1. Das Missverständniss zwischen Kai und mir war, dass ich dachte, dass er von einem Fehler in PMA (phpMyAdmin) ausgeht. Dies war aber nicht der fall...

2. will ich kurz eine Step-by-Step anleitung zum thema "Wie ich eine CVS Datei per phpMyAdmin (PMA) in eine Datenbank speichere"

1.) PMA aufrufen
2.) entsprechende Datenbank und Tabelle (folgend %table%) aufrufen
3.) "Textdatei in Tabelle einfügen" anklicken
4.) Durchsuchen anklicken und datei suchen+auswählen
4.1) ersetzen nur auswählen, wenn existente datensätze ersetzt werden sollen (normaleerweise nicht!)
4.2) Trennzeichen wählen (normal kann ";" bleiben)
4.3) Rest erklärt sich selbst und bedarf normalerweise keiner änderung
5.) Nach einem Klick auf abschicken gelangen wir wieder zurück zur Datenbankansicht. Im ausgeführten Query soltle folgendes stehen:

LOAD DATA LOCAL INFILE '%temp_name%' INTO TABLE `%table%` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'

6.) Es ist geschafft...

Falls jmd fragen hat, kann er diese gerne an mich direkt senden (pm/mail)
...in diesem Sinne
yours boppy

Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
User avatar
boppy
AF Moderator
 
Posts: 501
Joined: 27. December 2002 02:15
Location: W-E-City

Postby Guest » 13. April 2003 22:56

Ich hab den gleichen fehler. Er tritt in mySQL.exe auf, wenn ich versuche, daten aus der data.txt in meine table einzutragen:
LOAD DATA LOCAL INFILE "data.txt" INTO TABLE geo;
Guest
 

Lösung des Problems

Postby ingeniör » 19. April 2003 17:13

Also, ich habe hier ingesamt viel Quatsch gelesen, dann aber doch die Lösung gefunden...

in die my.cnf folgendes eintragen:
---------------------------------------
[mysqld]
local-infile=0

[mysql]
local-infile=0
---------------------------------------
aber aufpassen, irgendein Scherzkeks hat im Paket zwei my.cnf versteckt.
die erste, die aber nicht aufgerufen wird, liegt dierekt unter wampp2, die die aufgerufen wird, unter:
---------------------------------------
\wampp2\mysql\bin\
---------------------------------------

Alles etwas unlogisch, aber bei mir gehts jetzt.

Viel Spaß noch!

:)
ingeniör
 

Postby boppy » 19. April 2003 17:17

Also, ich habe hier ingesamt viel Quatsch gelesen, dann aber doch die Lösung gefunden...
Könntest du das mal näher erklären?

aber aufpassen, irgendein Scherzkeks hat im Paket zwei my.cnf versteckt.
die erste, die aber nicht aufgerufen wird, liegt dierekt unter wampp2, die die aufgerufen wird, unter:
Am besten die my.cnf auf C: kopieren. Genau so, wie es in der installationsanleitung steht. Die ist dazu da um gelesen zu werden ;)
...in diesem Sinne
yours boppy

Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
User avatar
boppy
AF Moderator
 
Posts: 501
Joined: 27. December 2002 02:15
Location: W-E-City

Postby Klaus Bohn » 06. May 2003 20:21

oder einfach ohne LOCAL:
LOAD DATA INFILE 'test.txt' INTO TABLE test;
ins eingabefeld tippen und GO drücken
das funktioniert auch mit phpadmin

sofern
- die .txt-datei im datenbank-verzeichnis liegt (zb unter /data)
- file-berechtigung vorhanden ist
Klaus Bohn
 

Postby Klaus Bohn » 06. May 2003 20:25

ach ja:
felder mit tabulator trennen (mysql-vorgabe)
Klaus Bohn
 

Kann man es zum Laufen bringen?

Postby Matthias » 08. May 2003 02:49

Hi!

>Das sollte eigentlich heißen: "Diese Import-Funktion funktioniert nicht über phpMyAdmin."

Gibt es denn eine Möglichkeit, den Import doch über phpMyAdmin zum Laufen zu bringen?

Auch meine Skripte benutzen "load local infile", was nun ebenfalls nicht mehr funktioniert. (Auch ohne "local" geht es nicht...)

Als einziger Workaround fällt mir nur ein, das Einlesen "von Hand", also Zeile für Zeile zu bewerkstelligen...

Viele Grüße,
Matthias
Matthias
 

Postby Klaus Bohn » 08. May 2003 08:35

ich habs hingekriegt, textdaten (lokal) einzulesen und auf den server zu überspielen. (windows 98).

1. textdatei (tabulatoren, jede zeile mit absatz abgeschlossen) in mysql/data/meinedatenbank ablegen.
2. LOAD DATA INFILE 'test.txt' INTO TABLE test
das muß eigentlich funktionieren, wenn das format der textdatei ok ist.
3. mit der exportfunktion von phpadmin die tabelle als .sql-file auf der festplatte speichern. diese dump-funktion ist auch wieder sehr unklar angelegt. am besten structure+data UND complete insert und save as file anklicken. dann muß das fenster dateidownload aufgehen, zum speichern der sql-datei.
4. phpadmin auf dem server starten und bei 'run sql-query' auf 'durchsuchen' klicken. dann wird die sql-datei von deiner festplatte eingelesen und eine komplette tabelle mit den daten angelegt (deshalb structure+data).

laut mysql-handbuch geht load data rasend schnell, zu deutsch: kann ganz schön dauern.

per hand einlesen ist wohl überflüssig. ein kleines perl-skript tuts wohl auch. wenns alles nicht klappt, kann ich das auch kurz schreiben; funktioniert sicher problemloser als die phpadmin-bastelei.
Klaus Bohn
 

Postby Klaus Bohn » 08. May 2003 09:23

eben habs ich doch geschafft, eine txt.datei von der festplatte auf den server zu bringen. kurz+bündig:
angenommen, die felder in der txt-datei sind mit tabulator getrennt, ohne begrenzungszeichen:

phpadmin auf dem server starten
die betreffende tabelle wählen
textfile einladen:
durchsuchen: die txt.datei auf der festplatte aussuchen
entscheidend sind jetzt die einstellengen:
felder getrennt mit: \t
felder eingeschlossen: leer lassen
felder escaped: \
zeilentrenner: \r\n
(jedenfalls unter windows 98)

hätte man sich ja denken können.
das muß klappen! wenn text- und tabellenfelder übereinstimmen!

klaus
Klaus Bohn
 


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 12 guests