MySQL 5.1 Win / Batchfile probleme

Guten Tag allerseits!
Bin neu hier und hab mich begeistert im Forum umgesehen. Nun ist es soweit dass ich meine erste Frage platzieren will. Man verzeihe mir bitte anfängliche Newbie Fehler in diesem Forum :wink:

Also, zu meinem Problem.
Ich habe auf einem Win 2003 Server MySQL für Win 5.1 installiert. MySQL läuft als Service.

Nun möchte ich ein Batchfile ausführen, welches sich einloggt und automatisch ein .sql script ausführt. Leider bleibt aber die Kommandozeile wie unten gezeigt stehen:

mysql>

hier der Code aus dem Batchfile:

CD C:\SOLARIS\bin\
mysql.exe -u root -h localhost solaris --password=xxx --force
. script.sql
pause

wobei ‚solaris‘ der Name der Datenbank ist und
C:\SOLARIS\ der Pfad indem MySQL installiert ist.
Ich versteh nun nicht ganz, wieso die Kommandozeile quasi ‚stehen‘ bleibt (mysql&gt:wink: und mein angefügtes Script nicht ausführt.

Weiss jemand Rat?

Besten Dank an alle welche sich die Mühe machen mir zu helfen!

Guten Tag allerseits!

Schau mal da :smile:
http://dev.mysql.com/doc/refman/5.1/en/batch-mode.html

Guten Tag allerseits!

Schau mal da :smile:
http://dev.mysql.com/doc/refman/5.1/en/batch-mode.html

hi

jap, das habe ich bereits durchgekaut :wink:
Irgendwie klappt das aber nicht. Er scheint quasi stehen zu bleiben anstatt das .sql File auszuführen.

Grüsse

bei dem hier hats geklappt http://www.phpforum.de/archiv_62284_MySQL@command@pe…

aber er hat immer volle pfadangaben genutzt

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

villeicht liegts auch an deinem script :smile:
When using mysql in batch mode there is an odd requirement that cost me hours. Your .sql file cannot contain any #comment lines. Delete them and importing will be a breeze. There is no indication that this is the problem. However, experimentation revealed this to be the cause.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

mhm, diesen artikel hab ich beim googlen auch schon gefunden und ausprobiert. Ist ja eigentlich ne erweiterte Erklärung des mysql.com Beitrages. Klappt aber auch nicht. Keine Ahnung was da bei mir falschrum geht :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

das isses leider auch nicht :confused:

anbei mal das script:

CREATE TABLE loyalty_step1
SELECT
c.COUNTRY,
c.CUSTOMERID AS id,
c.CONTACPERSONFAMILYNAME,
c.CONTACTPERSONFIRSTNAME,
c.FIRSTNAME,
c.FAMILYNAME,
g.GSMANUMBER AS gsma,
c.EXTENSION AS wlext,
c.FirstOfField12 AS ‚wlext2‘,
c.ADDRESS AS ‚Address1‘,
c.POSTALCODE AS ‚Address2‘,
c.CITY AS ‚Address3‘,
c.CITY AS ‚City‘,
wp.CREATIONTIME AS ‚Fixed Creation‘,
‚Broadband‘,
pc.CreationTime AS ‚Prepaid mobile‘,
g.GSMPPCHANGEDATE AS ‚Postpaid mobile‘,
c.ARPU,
c.PRICEPLAN,
c.LASTCALLDATE

FROM
solaris.main_cust_grouped c,
solaris.main_gsm_cust g,
solaris.main_wireline_product wp,
solaris.main_pp_cust pc

WHERE
c.CUSTOMERCATEGORY LIKE ‚%dsl%‘
AND c.CUSTOMERID = g.CUSTOMERID

GROUP BY
c.CUSTOMERID

ORDER BY rand()

LIMIT 0,2500;

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,

das SQL-Script ist ein Kreuzprodukt von vier Tabellen, da Du nur für zwei Tabellen eine Where-Bedingung formulierst. Bis Du sicher, dass das Statement überhaupt funktioniert? Oder ist Dir die Antwortzeit nur zu lang? Bitte probiere das Statement erstmal unter phpMyAdmin aus.

MfG Georg V.

hi georg

ja, dass das Script nicht geht musste ich soeben auch feststellen. Habe es nun modifiziert und in mehrere Schritte aufgeteilt. Das Problem ist aber damit nicht gelöst. So wie ich das sehe, geht das Batchfile gar nie bis zu dem Punkt an dem das Script ausgeführt werden soll. Wenn ich in der Kommandozeile direkt:

. script.sql

eingebe, funktioniert es.

Grüsse, Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

wie genau rufst du es denn bis jetzt auf,
ein einfach Select sollte doch reichen zum probieren.

? was sagt die MySQL LogDatei, wird das script gefunden etc, wohin soll die ausgabe etc.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

also.
das Batchfile sieht so aus:

CD C:\SOLARIS\bin\
mysql.exe -u root -h localhost solaris --password=pwtta5a9
. script.sql

und im ‚script.sql‘ steht folgendes drinn (habs abgespeckt um die Fehlerquote zu verringern):

SELECT *
FROM solaris.main_gsm s
WHERE s.main_gsm_cust.gsmanumber LIKE ‚%07721%‘

die Logfiles schau ich mir gleich nach dem Essen an.

Gruss, und guten Hunger

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Also ich sach mal, tu es doch wie es beschrieben wird .

folgendes funktioniert super gut

cd C:\wamp\bin\mysql\mysql5.0.45\bin\
mysql.exe -u root -h localhost testbank c:\out.txt

das erste ist der pfad zur mysql.exe , das zweite ist das script mit pfad und das dritte ist die ausgabe mit pfad.

Ergo immer mit Pipes arbeiten :smile:

cd C:\wamp\bin\mysql\mysql5.0.45\bin\
mysql.exe -u root -h localhost testbank
c:\out.txt
Ergo immer mit Pipes arbeiten :smile:

hat bestens geklappt! besten dank für eure hilfe!!