Top-Themen

Aktuelle Themen (A bis Z)

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, 13623 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 ..
Ähnliche Inhalte
Datenbanken
MySQL Profiler - MySQL Profiling
Frage von fckoelleDatenbanken

Hallo zusammen, ich möchte zu Analysezwecken gerne herausfinden welche Befehle auf einen MySQL Server abgesetzt werden. Von Microsoft kenne ...

Datenbanken
CURDATE() MySQL
gelöst Frage von ThoomaasDatenbanken1 Kommentar

Hallo alle zusammen, ich habe das Problem, dass wenn ich eine Abfrage aus einer DB mache mit dem String ...

Webentwicklung
Mysql cluster
Frage von woidl85Webentwicklung

hallo zusammen, ich bin auf der suche nach einer mysql cluster lösung aus 2 nodes welche bei möglichkeit mit ...

Datenbanken
MYSQL ausgabe
Frage von pcguyDatenbanken31 Kommentare

Hallo zusammen Ich versuche gerade einen DB inhalt gefiltert auszugeben. DB: id - parent_id - title - url - ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 19 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 21 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.