mysql.exe startet die Konsole nicht

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

mysql.exe startet die Konsole nicht

Postby Tezkatlipoka » 14. September 2008 21:48

Hallo zusammen,

ich bin Neuling beim Umgang mit SQL und habe folgendes Problem:
Ich habe XAMPP installiert und das Control-Panel zeigt mir auch, dass MySQL läuft. Wenn ich aber nun unter C:\xampp\mysql\bin mysql.exe ausführen möchte, dann kommt nur ein kurzer Pfeifton und die Konsole geht auf und sofort wieder zu.
Hat jemand eine Idee, warum die Konsole nicht offen bleiben will?

Vielen Dank für Eure Hilfe im Voraus!!! :D

Gruß
Christoph

P.S.: Windows Vista Home Premium
User avatar
Tezkatlipoka
 
Posts: 18
Joined: 14. September 2008 21:35

Postby Nobbie » 14. September 2008 21:50

>Hat jemand eine Idee, warum die Konsole nicht offen bleiben will?


Warum sollte sie offen bleiben?

Welche UseriD, welches Passwort, welchen Host und welche Datenbank hast Du für die Konsole angegeben?
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Postby Tezkatlipoka » 14. September 2008 22:04

Warum sollte sie offen bleiben?


So genau kann ich Dir das nicht beantworten. In dem Buch, mit welchem ich arbeite steht, dass die Konsole 'sowohl zur Administration als auch zum Testen von Abfragen verwendet werden' kann.

Welche UseriD, welches Passwort, welchen Host und welche Datenbank hast Du für die Konsole angegeben?


:oops: Meinst Du Windows UserID? Host? ... bin (noch) ziemlich grün hinter den Ohren.
User avatar
Tezkatlipoka
 
Posts: 18
Joined: 14. September 2008 21:35

Postby glitzi85 » 14. September 2008 23:51

Naja, generell besteht hier das Problem der Windows-Generation ;-)

Unter DOS wäre das nicht passiert. Mach's so, dann weisst du auch warum:

Start -> Ausführen -> cmd eingeben und OK klicken. Nun öffnet sich eine Eingabeaufforderung. Hier tippst du nun diese Befehle ein:

Code: Select all
c:
cd \
cd xampp\mysql\bin


Nun befindest du dich im Verzeichnis bin und kannst die mysql.exe einfach durch den Befehl

Code: Select all
mysql


starten. Dann kommt mit Sicherheit wieder das Piepsen, allerdings bleibt die Konsole jetzt offen und du siehst die Fehlermeldung. Mit

Code: Select all
mysql --help |more


kannst du dir sämtliche verfügbaren Optionen ausgeben lassen (Mit Return weiterlaufen, mit q beenden). Besonders die Parameter -u, -p und -h sollten für dich von Interesse sein.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby Tezkatlipoka » 15. September 2008 08:28

Danke für Deine Antwort glitzi!

Ich bekomme folgende Fehler Meldung:
Code: Select all
Error 1054 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)


Und unter -u, -p und -h steht:
Code: Select all
host - (No default value)
user - (No default value)


password wird nicht aufgeführt.

Ich kann allerdings das Kommando

Code: Select all
mysql --help |more
so nicht eingeben. Nur ohne '|' kommt die Help-Liste. Sonst bekomme ich die Meldung:
Code: Select all
Der Befehl "more" ist entweder falsch geschrieben oder konnte nicht gefunden werden.


:?: :?: :?:

P.S.: Das mit return und q wollte auch nicht so... Die Help-Liste ist komplett durchgerauscht.
Glaube nicht an Wunder - Verlasse Dich darauf.
Woher soll ich wissen was ich denke, ich muss erst hören was ich sage!!
User avatar
Tezkatlipoka
 
Posts: 18
Joined: 14. September 2008 21:35

Postby Nobbie » 15. September 2008 10:49

Tezkatlipoka wrote:Ich bekomme folgende Fehler Meldung:
Code: Select all
Error 1054 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)


Das ist genau das Problem, Du mußt einen Usernamen, das Passwort und eine Datenbank (letzeres optional) angeben.

Der Username (und das Passwort) sind nicht Windows User, sondern MySQL User. Bei einer vollständig neuen und jungfräulichen Installation ist der einzige User "root" und hat kein Passwort. Die Angaben über den User und das Passwort macht man auf der Kommandozeile:

Code: Select all
mysql --user=root --password=xxxxx


Da "root" wahrscheinlich kein Passwort besitzt, brauchst Du auch keines anzugeben:

Code: Select all
mysql --user=root


Jetzt ist allerdings noch keine Datenbank geöffnet, die könntest Du auch gleich auf der Kommandozeile mit angeben, meistens ist eine Datenbank mit dem Namen "test" schon voreingerichtet:

Code: Select all
mysql --user=root --password=xxxxxx test


oder (ohne Passwort)

Code: Select all
mysql --user=root test


Wenn die Anmeldung erfolgreich war, siehst Du ungefähr die folgende Meldung:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51a Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


Der sog. "Prompt" (die Eingabeaufforderung) ist dieses "mysql> " - dort kannst Du nun SQL Befehle eingeben. Ein Befehl muss mit einem Semikolon (oder \g - kann man aber schlecht eingeben) abgeschlossen werden.

Wenn Du zum Beispiel beim Starten keine Datenbank angeben hast, oder falls Du eine andere Datenbank öffnen willst, gibst Du diesen Befehl ein (den Prompt habe ich zur besseren Lesbarkeit vorangestellt):

Code: Select all
mysql> USE mysql;


und schickst mit der Returntaste ab. Wenn es gut gegangen ist, hast Du jetzt die Datenbank "mysql" geöffnet und bekommst erneut den Eingabeprompt angezeigt.

Du könntest auch stattdessen erst einmal eine eigene Datenbank anlegen, nennen wir sie "meinedaten":

Code: Select all
mysql> CREATE DATABASE meinedaten;


Du bekommst nach dem Absenden eine Rückmeldung, dass das (hoffentlich) geklappt hat und dann siehst Du wieder den Prompt. Nun kannst Du diese Datenbank auswählen (durch das Anlegen alleine ist sie noch nicht ausgewählt):

Code: Select all
mysql> USE meinedaten;


Die SQL-Befehle habe ich hier gross geschrieben, das ist nicht notwendig, aber ich habe mir das als Stil angewöhnt, um offensichtlich reservierte SQL-Begriffe von Eigennamen (meinedaten beispielsweise) zu unterscheiden. In MySQL sollten Eigennamen in sog. "Backticks" stehen, denn wenn sie identisch sind mit einem reservierten SQL-Wort, dann strauchelt der SQL-Interpreter:

Code: Select all
mysql> USE `meinedaten`;


Das ist aber nicht unbedingt notwendig, wenn es nicht mit reservierten Begriffen kollidiert. Ich lasse es gerne weg (und bin gezwungen, nicht reservierte Namen zu benutzen), weil die Backticks nur von MySQL verstanden werden, aber nicht von anderen SQL-Systemen.

Mit der Eingabe von "quit" oder "exit", wieder gefolgt von Semikolon, beendest Du die Konsole:

Code: Select all
mysql> quit;


Man kann zusätzlich zum User, Passwort und Datenbank auch noch einen "Host" angeben (das ist die Stelle, wo der Datenbankserver läuft), wenn man das nicht tut (wie im oberen Beispiel), nimmt MySQL automatisch den lokalen PC mit dem Namen "localhost".

Und wenn man auch keinen User angibt, dann benutzt MySQL den Namen "ODBC" und nun erklärt sich die Fehlermeldung - MySQL hat erfolglos versucht "ODBC@localhost" zu öffnen (User "ODBC" auf dem Rechner "localhost" ohne Passwort), denn den User ODBC gibt es nicht auf Deiner Installation.

Alle weiteren SQL-Statements (CREATE TABLE, SELECT, ....) kannst Du in der Konsole nun eingeben - aber dazu brauchst Du sicherlich erst einmal ein Tutorial und ein dickes Buch, was man mit SQL alles machen kann.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Postby Tezkatlipoka » 15. September 2008 11:28

@Nobbie: Vielen, vielen Dank für Deine Hilfe, Zeit & Mühe!!!
Hat alles einwandfrei geklappt und ich finde mich jetzt wesentlich besser zurecht!!! Jetzt kann ich mit meinem Buch (Webseiten...) weiterarbeiten.

Grüsse
Christoph
Glaube nicht an Wunder - Verlasse Dich darauf.
Woher soll ich wissen was ich denke, ich muss erst hören was ich sage!!
User avatar
Tezkatlipoka
 
Posts: 18
Joined: 14. September 2008 21:35

Postby glitzi85 » 15. September 2008 16:32

Schön dass es geklappt hat. Die Anleitung von Nobbie war ja perfekt.

Warum das more bei dir nicht funktioniert weiß ich nicht, hab extra noch im Netz gesucht ob es das bei DOS gab, vielleicht ist es bei Windows wieder rausgeflogen. Bei mir hatte ich mal Cygwin drauf, deshalb gibt es bei mir in der Kommandozeile einige Befehle, die andere nicht haben. Da ist es immer etwas kompliziert Anleitungen zu schreiben.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby Tezkatlipoka » 15. September 2008 17:33

Das '|'-Symbol wir auch eher als ':' dargestellt, nur ein wenig gestreckter...

Ich hätte noch kurz 'ne Frage: Die Konsole löst mir Umlaute nicht auf. Anstelle eines 'ö's bekomme ich eine hochgestellte, umgedrehte 3. Liegt das an der MySQL-Konsole?

Gruß
Christoph
Glaube nicht an Wunder - Verlasse Dich darauf.
Woher soll ich wissen was ich denke, ich muss erst hören was ich sage!!
User avatar
Tezkatlipoka
 
Posts: 18
Joined: 14. September 2008 21:35

Postby Nobbie » 15. September 2008 21:04

>Liegt das an der MySQL-Konsole?

Wahrscheinlich. Schau doch nach, welchen Zeichensatz Du eingestellt hast.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Postby glitzi85 » 15. September 2008 21:05

Tezkatlipoka wrote:Das '|'-Symbol wir auch eher als ':' dargestellt, nur ein wenig gestreckter...

Ja, das ist schon richtig so. Das wird in der Kommandozeile so dargestellt. Allerdings wird der Befehl more bei dir nicht gefunden, an den die Ausgabe des vorherigen Befehls weitergeleitet werden sollte. Die Pipe funtkioniert schon wie gewünscht.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 13 guests