Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 13480 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 Liste simulieren (2)

Frage von Yanmai zum Thema Datenbanken ...

Datenbanken
MySQL bearbeiten - Rechte auf User ändern (6)

Frage von istike2 zum Thema Datenbanken ...

Datenbanken
MySQL - Mehrere Instanzen

Frage von ForgottenRealm zum Thema Datenbanken ...

Verschlüsselung & Zertifikate
Zugriff auf mySQL-DB mit ODBC und SSL (2)

Frage von Titan24 zum Thema Verschlüsselung & Zertifikate ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(2)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(6)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...

Monitoring
Netzwerk-Monitoring Software (15)

Frage von Ghost108 zum Thema Monitoring ...