none
Ausführen von mysqlclient in Powershell RRS feed

  • Frage

  • Hallo!

    Ich möchte in einem Script mehrere mySQL-Dateien über den mysql-Clienht ausführen lassen. Leider scheitere ich an der grundätzlichen ausführen. Das problem ist offenbar der Operator < mit dem man angibt, dass die SQL-Datei in die Datenbank geschrieben werden soll.

    Wenn ich mich mit der Datenbank nur verbinden will funktioniert das mit

    &"C:\xampp\mysql\bin\mysql.exe" '-h192.xxx.xxx.xxx' '-uroot' '-p' 'testdb'

    ganz gut. Sobald ich aber den Parameter < und ein Dateinamen angebe, wird das offenbar nicht richtig an den MySQL-Client übergeben und dieser quittiert mir mit der Usage-Anleitung die Eingabe.


    &"C:\xampp\mysql\bin\mysql.exe" '-h192.xxx.xxx.xxx' '-v' '-uroot' '-p' 'testdb' '<' 'H:\sql_scripts\testdb\000_init.sql'

    Wie kann ich das < SQL-Datei richtig angeben?

    VG niesel





    Mittwoch, 30. März 2016 11:07

Antworten

  • Ich habe es auf dem klassischen Wege gelöst

    cmd.exe /c $mysqlpath "-h"$dbhost "-u"$user -"p"$password $database '<' $item "2`>`&1"


    Jedoch wurmt mich noch, dass mysql "Warning: Using a password on the command line interface can be insecure." ausgibt. Mittels

    "2`>`&1"

    konnte ich erst einmal erreichen, dass dieser Fehler nur ein einzelner wird und nicht typisch Powershell eine großer Fehlermeldung ausgibt. Jedoch würde ich das ganze gern mit nul unterdrücken aber ein "2`>`nul" hat nicht funktioniert. Wie kann ich die Ausgabe des mysql clients unterdrücken?

    VG niesel

    Mittwoch, 30. März 2016 14:27

Alle Antworten

  • Moin,

    schau mal ob das escapen vom > funktioniert:

    &'C:\xampp\mysql\bin\mysql.exe' '-h192.xxx.xxx.xxx' '-v' '-uroot' '-p' 'testdb' "`<" 'H:\sql_scripts\testdb\000_init.sql'

    also "`<" anstatt '<'
    Mittwoch, 30. März 2016 11:53
  • Leider nein :(
    Mittwoch, 30. März 2016 12:15
  • Ich habe es auf dem klassischen Wege gelöst

    cmd.exe /c $mysqlpath "-h"$dbhost "-u"$user -"p"$password $database '<' $item "2`>`&1"


    Jedoch wurmt mich noch, dass mysql "Warning: Using a password on the command line interface can be insecure." ausgibt. Mittels

    "2`>`&1"

    konnte ich erst einmal erreichen, dass dieser Fehler nur ein einzelner wird und nicht typisch Powershell eine großer Fehlermeldung ausgibt. Jedoch würde ich das ganze gern mit nul unterdrücken aber ein "2`>`nul" hat nicht funktioniert. Wie kann ich die Ausgabe des mysql clients unterdrücken?

    VG niesel

    Mittwoch, 30. März 2016 14:27