You are not logged in.

  • Login

1

Saturday, December 2nd 2006, 3:40pm

DB per .bat-Datei befüllen

Servus,
ich bin recht neu im Konsole benutzen

zum Prob:

Ich möchte eine tabelle in meiner MySQL-DB füllen.

Da die Sache im Zuge eines Kundenupdates kommt wird die .bat-Datei von einer Installations-Routine ausgeführt...

Problem ist, dass ich zwar die Befehle kenne und sie in der konsole(cmd) auch ausführen kann. Leider weiß ich nicht wie ich die Befehle in die bat reinschreiben muss, damit sie automatisch ausgeführt werden...

Hier die Befehle

c:\serverpfad\mysql --password= \\Ich habe ein leeres Passwort....
jetzt kommt die eingabeaufforderung von mysql:
mysql>
//auf die richtige datenbank wechseln:
mysql>\u dbname
//.sql-Datei einspeilen
mysql>\. c:\pfad\kunden.sql



wenn ich diese drei befehle ausführe, befüllt er mir die entsprechende tabelle.
aber wie gesagt, keine ahnung wie ich das in der .bat schreiben muss.

Bin für jede Idee dankbar

Grüße,
Lukin

mysql \u dbname
mysql

2

Saturday, December 2nd 2006, 4:59pm

Kenn mich mit windows nicht so gut aus, aber auf auf Linux mache ich das so:

Bash

1
2
3
4
5
6
#!/bin/bash
echo "DROP TABLE test" | mysql --host=localhost --port=3306 --protocol=socket --socket=/var/run/mysqld/mysqld.sock --user=root --password=*** --database=testdb
 
echo "#######################################"
echo "# MySQL-Datenbank erfolgreich geloescht #"
echo "#######################################"


Sollte an sich genau so gehen. Musst nur das mit den --socket weg lassen ;) (glaube ich)

3

Saturday, December 2nd 2006, 5:04pm

Du darfst den Konsolenprompt nicht mit dem MySQL-Prompt verwechseln.
Im Batch kannst du keine SQL-Kommandos absetzen.
Allerdings kannst du dir ein SQL-Script schreiben, das du im Batch als Parameter an das Programm mysql übergibst.

Ich hoffe dein Problem richtig verstanden zu haben.

4

Saturday, December 2nd 2006, 5:08pm

Quoted from ""Marcus Gnaß""


Allerdings kannst du dir ein SQL-Script schreiben, das du im Batch als Parameter an das Programm mysql übergibst.


Richtig, das wäre das einfachste, dann kann man das erweiter, sprich du pakste auf 100 Rechnern die Batch file und das sql script liegt auf nem Webserver. Dann kannst du es editieren und alle 100Rechner haben sofort die Änderungen ;) ohne irgend ein Aufwand zu betreiben.

PS: Weiso fällt mir das jetzt erst ein :evil: Spare ich mir nen haufen Zeit ;)

Marcus Gnaß: Danke für den Denkanstoß 8)

5

Saturday, December 2nd 2006, 5:23pm

Hi Danke für die antworten schion mal :)

also wie kann

genau das wil ich ja machen.

ich hab eine .sql-Datei, die ich ausführen will.

ich müsste also in der batch datei dem mysql-prompt meinen befehl zum ausführen übergeben und den abschicken...?

wie geht das?

6

Saturday, December 2nd 2006, 6:16pm

Mittels <. Also mysql [deine Parameter] < script.sql.

7

Tuesday, December 5th 2006, 10:01am

So sollte es dann doch eigentlich gehen, oder?

Ich kriege:
Zugriff verweigert...

@echo off
echo Datenbank wird angepasst...
cd C:\pfad\bin
c:\pfad\bin\mysql --password= --database=dbname < /. C:\pfad\kundendaten.sql
pause
echo Fertig
exit

8

Tuesday, December 5th 2006, 10:49am

Quoted from ""Lukin""

c:\pfad\bin\mysql --password= --database=dbname < /. C:\pfad\kundendaten.sql


Lies dir nochmal die Optionen zum Programm mysql durch. Du solltest den User und auch ein Passwort angeben.
Was soll das /. bedeuten? Da hast du vermutlich irgendwas aus einem Tutorial zu MySQL unter Linux/Unix genommen, oder? Ein / als Pfadtrennzeichen unter Windows gibt es nämlich nicht.

9

Tuesday, December 5th 2006, 11:29am

das '/.' kommt aus der hilfe des mysql-prompt...

Einloggen kann ich mich . Er nimmt beide Befehle.

Wenn ich nur password und database setzte kann ich weiter befehle eingeben.
mit \s kriege ich den serverstatus. wenn ich database nicht setze ist keine Datenbank ausgewählt. mit database ist meine db ausgewählt.

wenn ich den Befehl '/. c:\...\etc\etc.sql manuell anstosse funktioniert er ja, nur in der batch-datei geht's net :(

10

Tuesday, December 5th 2006, 6:05pm

Enthält der Pfad Leerzeichen (z.B. "Eigene Dateien")?

11

Thursday, December 7th 2006, 8:30pm

HI,

nein enthält keine leerzeichen....

12

Friday, December 8th 2006, 12:07am

Poste doch mal dein Batch, das SQL-Script und die DB-Struktur, so daß ich das bei mir mal ausprobieren kann.

Social bookmarks