Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mysql und Batch

Frage Entwicklung Batch & Shell

Mitglied: FeuerTeufel

FeuerTeufel (Level 1) - Jetzt verbinden

12.09.2009, aktualisiert 17:49 Uhr, 12593 Aufrufe, 5 Kommentare

Hallo,
ich habe eine Frage:

Ich möchte mit Bat eine externe Mysql-Datenbank abrufen. Die Bat-Datei läuft auf meinem Rechner und die Mysql-Datenbank auf meinem Webhosting-Server Online. Die Rechte für den Mysql-Connect von extern sind vorhanden. Aber wie kann ich mit der externen Datenbank via Internet/DSL connecton und Spalten auslesen?

Alles Infos die man dazu findet, gehen von einer Mysql-Datenbank auf dem Localhost aus, worauf die Bat-Datei läuft- diese rufen dann eine mysql.exe auf... aber das geht ja hier nicht. Kann mir jemand weiterhelfen?

Gruß
Niklas Gössl
Mitglied: filippg
12.09.2009 um 18:28 Uhr
Hallo,

diese rufen dann
eine mysql.exe auf... aber das geht ja hier nicht.
Wieso? mysql.exe hat einen Option -h mit der man einen Remote-Host angeben kann. Siehe auch http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html

Gruß

Filipp
Bitte warten ..
Mitglied: FeuerTeufel
06.10.2009 um 03:38 Uhr
Hallo,

so ich habe es nun endlich hin bekommen dass Datensätze aus der Datenbank ausgelesen werden.

Der Befehl sieht nun so aus:
01.
mysql.exe -u USER --password=PASSWORT -h SERVER -D DATENBANK < script.sql
In der script.sql steht dann jeweils der auszuführende SQL-Code.

Die Batch-Datei listet dann die entsprechenden Datensätze auf.


Aber wie kriege ich das nun hin, dass ein bestimmter Wert aus der Datenbank in eine Variable gepeichert wird, auf die ich in der Batchdatei zugreifen kann damit ich evtl. Bedingungen stellen kann, wenn der Wert der Variable ==1 ist, dann soll er etwas bestimmtes in der Batchdatei ausführen.

Also wie ich die Bedingung stelle ist klar, aber unklar ist wie ich den Wert 1 aus der Datenbank in eine Batch-Variable (%VARIABLE1%) schreiben kann.

Ich hoffe ja dass das überhaupt möglich ist.

Gruß
Niklas
Bitte warten ..
Mitglied: Biber
06.10.2009 um 08:13 Uhr
Moin Niklasg,

Die Batch-Datei listet dann die entsprechenden Datensätze auf.
Zeigst Du bitte Beispiel?

Aber wie kriege ich das nun hin, dass ein bestimmter Wert aus der Datenbank in eine Variable gepeichert wird, auf die ich in der Batchdatei zugreifen kann damit ich evtl. Bedingungen stellen kann, wenn der Wert der Variable ==1 ist, dann soll er etwas bestimmtes in der Batchdatei ausführen.
Machst Du bitte krass konkret?
Also wie ich die Bedingung stelle ist klar, aber unklar ist wie ich den Wert 1 aus der Datenbank in eine Batch-Variable (%VARIABLE1%) schreiben kann.
Sicher mit einer FindStr-FOR/F -Kombination, aber dazu müsste man/frau den Resultset-String mal sehen.
Ich hoffe ja dass das überhaupt möglich ist.
Die Schalke-Fans hoffen seit einem halben Jahrhundert auf den Pokal... du hast viel bessere Chancen.

Grüße
Biber
Bitte warten ..
Mitglied: FeuerTeufel
06.10.2009 um 14:48 Uhr
Moin,

das ist wie oben schon geschrieben die ausführende Bat-Datei:
01.
mysql.exe -u USER --password=PASSWORT -h SERVER -D DATENBANK < script.sql
Hier ist dann die script.sql:
01.
SELECT DISTINCT action FROM tabelle_xy WHERE ID LIKE '2'
Daraus resultiert in der Bat folgende Ausgabe:

tabelle_xy
mailsenden

Er listet zuerst den Spaltennamen auf, und darunter die ausgelesenen Werte.


So. Nun soll aber der ausgelesene Wert 'mailsenden' in einer Variable drin stehen.

Mit dieser Variable kann ich dann nacher eine Bedingung erstellen wie
01.
If "%Variable%" == "mailsenden" goto zum_befehl_mail_senden
oder

01.
If "%Variable%" == "1" goto zum_befehl_rechner_herunterfahren
Auf diese weise kann ich in der Bat-Datei viele Funktonen einbauen wie DSL-Gateway wechseln oder Rechner herunterfahren oder einen Dienst in Windows stoppen, und mit der oben gezeigten Bedingung kann ich diese Funktion nur dann ausführen lassen wenn in der Datenbank-Spalte ein bestimmter Wert steht.

Aber das geht eben nur dann, wenn ich den Wert direkt in einer %Variable% stehen habe auf die ich dann mit if abfragen kann.

Gruß
Niklas
Bitte warten ..
Mitglied: Biber
06.10.2009 um 19:16 Uhr
Moin Niklasg,

in Batchdateien ist es (auch unter Windows) möglich, die (Bildschirm-)Ausgaben von aufgrerufenen Programmen/Befehlen in Dateien umzulenken und/oder als Eingabe, als input zu verwenden.
Wie du es ja auch vorhast.

Als Vorüberlegung muss bei der CMD.exe, dem M$-Befehlsinterpreter allerdings das "Weilche Zeile/welche Zeilen des Outputs brauche ich?" erfolgen, da die CMD.exe nur ZEILEorientiert arbeitet.

Um Deine Zeile mit dem Suchwort "mailsenden" eindeutig zu beschreiben gäbe es mehrere Möglichkeiten

  • die Zeile mit "mailsenden" (oder welcher Aktion auch immer) ist die letzte Zeile der Ausgabe des Batches.
  • die Zeile mit der Aktion ist immer die Zeile nach der Zeile mit der Angabe "Tabelle_xy"
  • die Zeile mit der Aktion "mailsenden" muss eines der Worte "mailsenden", "abbrechen", "noaction", "delete" (als Beispiele) enthalten

In jedem dieser Fälle (welcher bei dir am Sinnvollsten ist, müsstest du nochmal kurz ergrübeln) kann das eine Wort dieser relevanten Zeile nit einer FOR/F-Anweisung und dem SET-Befehl in eine Variable geschrieben werden.

Beispiel, wenn NUR das Wort "mailsenden" in einer Datei stünde ODER "mailsenden" die letze Zeile einer Textdatei ist:
01.
.... 
02.
REM... In einem Batch.. 
03.
FOR /F %%i in (D:\Ein\ResultVonnerMySQLQuery.txt) Do Set "myVar=%%i" 
04.
If "%myVar%" == "mailsenden" goto zum_befehl_mail_senden 
05.
...
So die Skizze.


---> Sauberer/empfehlung wäre:
  • die Query erweitern um eine weitere Spalte, in der ein (toi toi toi) eindeutiger Suchbegriff erzeugt wird.
Beispiel:
01.
SELECT DISTINCT action, 'ACTION' as whatever  FROM tabelle_xy WHERE ID LIKE '2'
--> Ausgabe wäre dann in dieser einen RS-Zeile:
mailsenden ACTION
... und nach der Zeile, die das Suchwort "ACTION" enthält kannst Du exakt suchen mit Find/FindStr.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...