DB per .bat-Datei befüllen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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
  • Kenn mich mit windows nicht so gut aus, aber auf auf Linux mache ich das so:

    Quellcode

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


    Sollte an sich genau so gehen. Musst nur das mit den --socket weg lassen ;) (glaube ich)
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • "Marcus Gnaß" schrieb:


    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)
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • "Lukin" schrieb:

    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.
  • 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 :(