.txt datei zum einlesen in die datenbank erstellen

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Gesperrt
floardynamite
Member
Member
Beiträge: 85
Registriert: 1. Jan 2005, 17:37

.txt datei zum einlesen in die datenbank erstellen

Beitrag von floardynamite » 14. Mär 2005, 01:51

hallo,
nachdem ich nun meinen mysql server(datenbank) zum laufen gebracht hab und gerade damit begonnen habe mich damit zu befassen hab ich schon ein erstes problem. um mit dem insert kommando die datensätze in eine tablelle zu laden, sollte man ja zuerst eine txt datei erstellen und sie dann mit jenem kommando in die tabelle laden, nur wie und wo erstelle ich diese datei. also bis jetzt hab ich ja txt dateien immer mit dem vim erstellt, den kann ich aber in der mysql prompt nicht aufrufen, soll ich also die mysql prompt verlassen und dan in einem verzeichnis, nur in welchem, eine txt datei erstellen. ich denk mal meine methode ist die falsche und es geht eigentlich viel einfacher, nur wie,
danke für hilfe,
gruss floar

Werbung:
Benutzeravatar
PC-Ulf
Member
Member
Beiträge: 180
Registriert: 1. Okt 2004, 17:30
Wohnort: Köln
Kontaktdaten:

Beitrag von PC-Ulf » 14. Mär 2005, 07:35

Code: Alles auswählen

mysql < /Datei
Die meisten nutzen die Endung .sql statt .txt, man kann es natürlich noch genauer machen indem man die Datei mit .sql.txt kenntlich macht. Aber in der Regel ist eine .sql Datei immer eine .txt Datei.
Hoffe es hilft ein wenig. :wink:

floardynamite
Member
Member
Beiträge: 85
Registriert: 1. Jan 2005, 17:37

Beitrag von floardynamite » 14. Mär 2005, 13:35

hi ulf,
also bei mir klappt das so noch nicht. also wenn ich in der mysql prompt bin klappt das nicht, auch in meiner normalen prompt nicht
gruss floar

floardynamite
Member
Member
Beiträge: 85
Registriert: 1. Jan 2005, 17:37

Beitrag von floardynamite » 14. Mär 2005, 13:42

okich bin nun doch soweit gekommen
mit

Code: Alles auswählen

./mysql  > /pet.sql
verschwindet zwar die prompt und ich komme in eine umgebung wie in dem vi, aber ich kann diese umgebung nicht mit :wq um die datei zu speichern verlassen, sondern nur mit strg-D, dann kommt aber eine sql syntax-fehlermeldung. das stimmt so auch noch nicht, oder?

Benutzeravatar
PC-Ulf
Member
Member
Beiträge: 180
Registriert: 1. Okt 2004, 17:30
Wohnort: Köln
Kontaktdaten:

Beitrag von PC-Ulf » 15. Mär 2005, 07:52

Ich habe mal zur Probe eine Datei erstellt, namens testdb.sql mit den Inhalt:

Code: Alles auswählen

create database testdb;
Die sql Datei muß in der Syntax natürlich korrekt sein, sonst kann MySQL diese Datei nicht verarbeiten. Wird die SQL-Datei testdb.sql zum zweitenmal aufgerufen, erscheint eine Fehlermeldung (weil die DB nun schon vorhanden ist). Zur Probe der Vorgehensweise reicht erst mal die Testdatei, sollte es dann mit Deiner SQL-Datei nicht klappen, kannst Du nach Fehlern in dieser SQL-Datei suchen (hierfür bitte einen neuen Thread, damit es übersichtlich bleibt).

Ich habe es jetzt mal bei XAMPP ausprobiert:

Code: Alles auswählen

cd /opt/lampp/bin
./mysql < testdb.sql
./mysql
show databases;
Nun sollte die Testdatenbank testdb mit aufgelistet werden. Mit

Code: Alles auswählen

drop database testdb;
entfernt man die Testdatenbank wieder.
Taucht ein Fehler bei der Ausführung auf, hat es meist zwei Gründe: 1. Fehler in der SQL-Struktur (z.B. weil die SQL-Datei aus einer anderen Version oder einer anderen Datenbank stammt) und 2. weil die SQL Datei schon eingelesen wurde (und die Befehle deshalb abgebrochen werden).
Sollte der erste Fall eintreffen, bitte einen neuen Thread aufmachen und die ersten 3 Zeilen der SQL Datei posten. Zudem exakt die Fehlermeldung und die Zeile in der der Fehler auftaucht, + 3 Zeilen vorher.
Hoffe es hilft ein wenig. :wink:

litemaster
Member
Member
Beiträge: 127
Registriert: 10. Aug 2004, 11:51

Re: .txt datei zum einlesen in die datenbank erstellen

Beitrag von litemaster » 15. Mär 2005, 08:46

floardynamite hat geschrieben:um mit dem insert kommando die datensätze in eine tablelle zu laden, sollte man ja zuerst eine txt datei erstellen und sie dann mit jenem kommando in die tabelle laden, nur wie und wo erstelle ich diese datei. also bis jetzt hab ich ja txt dateien immer mit dem vim erstellt, den kann ich aber in der mysql prompt nicht aufrufen, [..]
Also ich kann in meinem SQL-Prompt meinen Editor direkt aufrufen:

Code: Alles auswählen

> system mcedit ./count_rows.sql
Mit dem system Kommando können normale Systembefehle ausgeführt werden (die Hilfe sagt dazu: Execute a system shell command).
Darauf achten, dass du im richtigen Verzeichnis bist, resp. dass du den kompletten Pfad angibst.
mit
Code:
./mysql > /pet.sql

verschwindet zwar die prompt und ich komme in eine umgebung wie in dem vi
Ich denke nicht, dass du das Umleitungszeichen tatsächlich so verwenden willst. Der schreibt dann nämlich sämtliche Ausgaben (z.B. den Prompt und alle Rückmeldungen bis zum CTRL-D) in die angegebene Datei. Die "Richtung" in der die spitze Klammer zeigt, ist nämlich von Bedeutung.


Zusammengefasst kannst du also so vorgehen:

Code: Alles auswählen

> cd /local/sql           # das Verzeichnis mit wo die SQL-Dateien abgelegt werden sollen
> mysql -u root -p        # oder sonst ein MySQL-Benutzer mit genügend Rechten
> system vim daten_1.sql  # ruft deinen Editor auf, erstellt die Datei, falls noch nicht vorhanden
> source daten_1.sql      # führt die in der Datei enthaltenen SQL-Befehle aus
> exit                    # Beendet den MySQL-Prompt

floardynamite
Member
Member
Beiträge: 85
Registriert: 1. Jan 2005, 17:37

Beitrag von floardynamite » 15. Mär 2005, 14:02

ok,
konnte das problem lösen
tnx 4 help
gruss floar

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste