.cvs datei in mysql

P

pascalplus

Guest
Hi
Ich habe im excel eine tabelle erstellt welche ich anschliessend unter dem Dateityp .cvs speicherte.
Nun möchte ich diese .cvs-datei in eine mysqldatenbank einfügen.
Eine Datenbanktabelle hab ich bereits erstellt, doch weiss ich nun nicht, wie ich diese datei importieren kann.

kleiner Ausschnitt aus der Datei:
CODE 9;Les Merlas;S;x;JO;name1
12;Wanderung über dem Bielersee;W;;Mi;name2
16;Skitour in den Voralpen;S;x;JO;name3
19;Turnen;S;x;Mi;name5
23;Langlauftour;LL;;;name6
26;Skifahren;S;;Mi;name7
 
Hast du phpMyAdmin installiert? Da geht's relativ einfach über den Link "Insert data from a textfile into table"
 
phpMyAdmin hab ich installiert. version: 2.6.0-pl3

wie ist das gemeint mit dem link: "Insert data from a textfile into table"?
muss ich bei textfile eine url eingeben und bei table den tabellennmen?
also: Insert data from a 'http://www.sac-grenchen.ch/sektion.csv' into 'programmm'
 
Ich hab noch ne ältere Version

auf der Seite zur entsprechenden Tabelle, in das csv eingefügt werden soll, befindet sich ganz unten ein Link "Insert data from a textfile into table" (oder entsprechende Bezeichnung auf deutsch); auf der folgenden Seite kann man dann die Datei über den Explorer aussuchen oder den Pfad dierkt eingeben, die Vorgaben noch überprüfen (z.B. Semikolon als Feld-Trenner) und dann über "submit" einfügen
 
wenn ich das so mache, erscheint danach:
CODE
SQL-Befehl:
LOAD DATA LOCAL INFILE '/usr/httpd_data/neverever/sacgrenchen/tmp/php6dEt0F' INTO TABLE `tp_sektion05` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'

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


heisst das, dass auf meinem server noch eine ältere Version von mysql vorhnden ist?
 
Um welche MySQL Version es sich handelt, kannst du über eine info.php herausbekommen:

CODE
<?php
phpinfo();
?>



hochladen, aufrufen und dann unter mysql schauen

Folgende Info habe ich noch gefunden:


QUOTE
LOCAL is available in MySQL 3.22.6 or later.
[...]
As of MySQL 3.23.49 and MySQL 4.0.2 (4.0.13 on Windows), LOCAL works only if your server and your client both have been enabled to allow it. For example, if mysqld was started with --local-infile=0, LOCAL will not work. See section 5.4.4 Security Issues with LOAD DATA LOCAL.



Quelle: http://dev.mysql.com/doc/mysql/en/LOAD_DATA.html
 
meine angaben zur datenbank:

Active Persistent Links: 3
Active Links: 3
Client API version: 3.23.55
MYSQL_MODULE_TYPE:external
MYSQL_SOCKET: /tmp/mysql.sock
MYSQL_INCLUDE: -I/usr/local/include/mysql
MYSQL_LIBS: -L/usr/local/lib/mysql -lmysqlclient

wenn ich also den beitrag von http://dev.mysql.com richtig verstanden habe, sollte meine version neu genug sein für diese Aktion durchzuführen.

ich probierte es dann mal mit:
LOAD DATA INFILE "http://www.sac-grenchen.ch/sektion.csv" INTO TABLE sacgrenchen.programm

doch kam ich dann den fehler:
#1045 - Access denied for user: 'sacgrenchen@localhost' (Using password: YES)
gemeldet.

kann ich diesen fehler irgendwie umgehen oder hat mir hier der serveradmin etwas zugeschraubt?
 
Die letzte Fehlermeldung hat vielleicht hiermit zu tun:

QUOTE
For security reasons, when reading text files located on the server, the files must either reside in the database directory or be readable by all. Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege. See section 5.5.3 Privileges Provided by MySQL.



(selbe Quelle wie oben)


QUOTE hat mir hier der serveradmin etwas zugeschraubt?


ja, würde ich mal nachfragen, den Ausführungen im Manual zufolge kann anscheinend sowohl das Einlesen vom Server wie auch das Laden vom Client je nach Konfiguration von MySQL aus Sicherheitsgründen eingeschränkt sein
 
Zurück
Oben