View previous topic :: View next topic |
Author |
Message |
urban Tux's lil' helper
Joined: 06 Nov 2003 Posts: 81
|
Posted: Wed Jun 02, 2004 1:13 pm Post subject: [OT] Bash Script soll Daten in MySQL einlesen |
|
|
Hallo,
ich habe ein, warscheinlich, simples Problem. Ich habe ein Shell Scipt dessen Variablen sich dynamisch verändern. Diese Änderungen sollen in eine mysql eingetragen werden.
Ich bin was shell scripte angeht, nicht wirklich fit. Von daher habe ich Probleme mit den ' und " usw.
Könnt Ihr mir einen Tip geben wie man das richtig macht.
Gruß
Urban |
|
Back to top |
|
|
Earthwings Bodhisattva
Joined: 14 Apr 2003 Posts: 7753 Location: Germany
|
Posted: Wed Jun 02, 2004 1:22 pm Post subject: |
|
|
Ein bißchen konkreter musst Du schon werden... |
|
Back to top |
|
|
Ragin l33t
Joined: 14 Apr 2003 Posts: 776
|
Posted: Wed Jun 02, 2004 1:34 pm Post subject: |
|
|
Nimm deine Daten, schreibe sie in eine Datei, die das entsprechende Format hat (Spalte1 <TAB> Spalte2) und importiere dies über:
Code: |
/usr/bin/mysqlimport --replace --host=localhost -u deinNutzer -pPasswort Datenbankname ./datei.sql
|
--replace sagt, dass er die Sätze ersetzen soll wenn sie bereits existieren. Eine eindeutige ID wäre an dieser Stelle nicht schlecht.
Alternativ kannst du auch --delete anstatt --replace nutzen bei dem er die Tabelle erst löscht und dann neu füllt.
Dein Passwort musst du direkt ohne Leerzeichen hinter -p schreiben.
Sollte das nicht das sein was du suchst: man mysql bzw. man mysqlimport oder google oder genauere Angaben. _________________ "Innerhalb der Computergemeinschaft lebt man nach der Grundregel, die Gegenwart sei ein Programmfehler, der in der nächsten Ausgabe behoben sein wird."
Clifford Stoll, amerik. Astrophysiker u. Computer- Pionier |
|
Back to top |
|
|
øxygen Apprentice
Joined: 09 Mar 2004 Posts: 236 Location: Bergheim, Germany
|
Posted: Wed Jun 02, 2004 1:36 pm Post subject: |
|
|
Eine andere Möglichkeit wäre es die Daten per:
echo "SQL STATEMENT;" | mysql -uuser -ppass db
einzulesen |
|
Back to top |
|
|
urban Tux's lil' helper
Joined: 06 Nov 2003 Posts: 81
|
Posted: Wed Jun 02, 2004 1:40 pm Post subject: |
|
|
OK.
In meinem Script lese ich verschieden Gräte aus. Ich habe also Werte wie Zeit, Gerätename und einen Zahlenwert.
Der Zahlenwert und die Zeit ändern sich.
Ich habe diese Werte alle als Variable definiert und wenn ich sie mir mit echo anzeigen lasse, ist alles super.
Jetzt muß ich aber noch auf meine mysql Datenbank zugreifen. Ich hatte eigentlich vor mich via:
SQL_STMT="INSERT INTO $TAG (geraet,zahlenwert) VALUES ($GERAET, $ZAHL);"
/usr/bin/mysql -h localhost -u root --password=xxx datenbank
echo $SQL_STMT
an der Datenbank an zumelden und dann per echo die Werte in die DB ein zulesen. In meinem Script kommen ich aber nur bis zum anmelden. Dann habe ich die shell der DB an der Konsole. Weiter komme ich nicht. Ich weiß nicht wie ich es anstellen soll. Das insert Statment ist also falsch bzw. wird nicht an die Shell der DB gegeben. |
|
Back to top |
|
|
py-ro Veteran
Joined: 24 Sep 2002 Posts: 1734 Location: Velbert
|
Posted: Wed Jun 02, 2004 1:41 pm Post subject: |
|
|
Siehe Beitrag von Oxygen
Du startest ja die mysql Konsole wenn du diese dann beendest sollte das Echo den String auf die normale Konsole ausgeben |
|
Back to top |
|
|
urban Tux's lil' helper
Joined: 06 Nov 2003 Posts: 81
|
Posted: Wed Jun 02, 2004 1:54 pm Post subject: |
|
|
Danke erstmal. Mein Script liest die Daten in die DB. Zwar falsch, aber daran werde ich jetzt arbeiten.
Also Danke. |
|
Back to top |
|
|
x000x Tux's lil' helper
Joined: 18 Jun 2002 Posts: 86 Location: Germany - Hamburg
|
Posted: Wed Jun 02, 2004 6:09 pm Post subject: |
|
|
Code: | #!/bin/sh
SQL_STMT="INSERT INTO $TAG (geraet,zahlenwert) VALUES ($GERAET, $ZAHL);"
echo $SQL_STMT | /usr/bin/mysql -h localhost -u root --password=xxx datenbank
|
Das funktioniert nicht? ----^ _________________ -= Gruss Peter =-
-= alias x000x =-
Peter wrote: | perl -e 'print "\x47\x72\x75\x73\x73\x20\x50\x65\x74\x65\x72\x20\x3b\x2d\x29\x0a";' |
|
|
Back to top |
|
|
|