mysql-Server Start-Problem

mysql-Server Start-Problem

am 20.04.2006 23:57:51 von Marek Stepanek

Hallo an alle,


ich bin völlig neu bei MySQL. Ich bin auf MacOS 10.3.9 und das installierte
mysql ist mysql-max-5.0.19-osx10.3-powerpc ... (ist das die richtige
Version?)

Ich habe meinen Server schon zum Laufen gebracht, aber seit ein paar Tagen
nicht mehr. Hier die Befehle die ich eingebe ... Was mache ich falsch?

Danke im Voraus!


marek


[markslap:local/mysql/bin] mareklap% sudo ./mysqld_safe
Password:
Starting mysqld daemon with databases from /usr/local/mysql/data
# hier warte ich und warte ... schließlich mache ich
^Z
Suspended
#aber kein mysql prompt erscheint!
[markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
161a498 stream 0 0 2175728 0 0 0
/tmp/mysql.sock
# dh heißt doch, das der Server läuft??? ABER:
[markslap:local/mysql/bin] mareklap% mysql -h localhost -u root -p
Enter password:


^Z
# auch hier warte ich und warte ...
Suspended
[markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
161a428 stream 0 0 0 161a460 0 0
/tmp/mysql.sock
161a498 stream 0 0 2175728 0 0 0
/tmp/mysql.sock
#jetzt habe ich zwei mysql-Server/Prozesse am laufen? Vielleicht mit sudo?
[markslap:local/mysql/bin] mareklap% sudo mysql -h localhost -u root -p
Password:
Sorry, try again.
Password:
Enter password:

^Z
Suspended
[markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
161a268 stream 0 0 0 161a310 0 0
/tmp/mysql.sock
161a428 stream 0 0 0 161a460 0 0
/tmp/mysql.sock
161a498 stream 0 0 2175728 0 0 0
/tmp/mysql.sock
[markslap:local/mysql/bin] mareklap%

Re: mysql-Server Start-Problem

am 21.04.2006 09:57:27 von Christian Kirsch

Marek Stepanek schrieb:
>
> Hallo an alle,
>
>
> ich bin völlig neu bei MySQL. Ich bin auf MacOS 10.3.9 und das installierte
> mysql ist mysql-max-5.0.19-osx10.3-powerpc ... (ist das die richtige
> Version?)

Das hängt davon ab, was Du mit 'richtig' meinst und was Du tun willst.
Jedenfalls ist 5.0 die aktuelle Version von MySQL (was man von 10.3.9
bzgl. Mac OS X nicht gerade sagen kann).

>
> Ich habe meinen Server schon zum Laufen gebracht, aber seit ein paar Tagen
> nicht mehr. Hier die Befehle die ich eingebe ... Was mache ich falsch?
>

Hm. Bei meinem MySQL-Server für Mac OS X kam ein Panel für die
Systemeinstellungen mit, mit dem ich den Server starten und anhalten kann.

> [markslap:local/mysql/bin] mareklap% sudo ./mysqld_safe
> Password:
> Starting mysqld daemon with databases from /usr/local/mysql/data
> # hier warte ich und warte ... schließlich mache ich
> ^Z
> Suspended
> #aber kein mysql prompt erscheint!

Ja, und ? Warum sollte da ein mysql-Prompt erscheinen? Das tat er
sicherlich noch nie. Du startest da den SERVER, und der gibt nie nicht
einen Prompt aus.

> [markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
> 161a498 stream 0 0 2175728 0 0 0
> /tmp/mysql.sock
> # dh heißt doch, das der Server läuft??? ABER:

Nicht unbedingt - ich würde erstmal ps bemühen, um zu sehen, welche
Prozesse laufen.

> [markslap:local/mysql/bin] mareklap% mysql -h localhost -u root -p
> Enter password:
>
>
> ^Z
> # auch hier warte ich und warte ...
> Suspended
> [markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
> 161a428 stream 0 0 0 161a460 0 0
> /tmp/mysql.sock
> 161a498 stream 0 0 2175728 0 0 0
> /tmp/mysql.sock
> #jetzt habe ich zwei mysql-Server/Prozesse am laufen? Vielleicht mit sudo?

Nö. Vermutlich hast Du einfach zwei MySQL-Clients laufen, die auf
/tmp/mysql.sock lauschen und weil kein Server läuft, warten sie halt ewig.

> [markslap:local/mysql/bin] mareklap% sudo mysql -h localhost -u root -p

Was soll das? mysql ist der Kommandozeilen-Client, den muss man nicht
mit sudo starten.


In erster Näherung würde ich Dir mal die Lektüre des Handbuchs oder auch
des Kofler zu MySQL empfehlen (ersteres findest Du bei dev.mysql.com -
und ja, lies bitte die englische Fassung, die deutsche ist in der Regel
etwas veraltet).

Außerdem bitte ein bisschen Studium der Unix-Grundlagen, wenn Du auf dem
Mac im Terminal rumbasteln willst: Prozesse zeigt ps, netstat zeigt nur
Netzwerkverbindungen. Ctrl-Z hält den laufenden Prozess an - danach
wartet der einfach nur und tut gar nix mehr. Du musst ihn schon mit 'bg'
in den Hintergrund schicken, wenn er noch irgendwas tun soll.

Ein ps -uaxww würde Dir vermutlich verraten, dass gar kein MySQL-Server
läuft.

Warum das so ist, steht vielleicht in der Error-Datei von MySQL ->
Handbuch.

Und versuch doch einfach mal, das von MySQL gelieferte Tool zum Starten
von MySQL zu benutzen -> Systemeinstellungen, ganz unten.

Re: mysql-Server Start-Problem

am 21.04.2006 10:27:07 von Kai Ruhnau

Marek Stepanek wrote:
> ich bin völlig neu bei MySQL. Ich bin auf MacOS 10.3.9 und das installierte
> mysql ist mysql-max-5.0.19-osx10.3-powerpc ... (ist das die richtige
> Version?)
>
> Ich habe meinen Server schon zum Laufen gebracht, aber seit ein paar Tagen
> nicht mehr. Hier die Befehle die ich eingebe ... Was mache ich falsch?
>
> Danke im Voraus!
>
>
> marek
>
>
> [markslap:local/mysql/bin] mareklap% sudo ./mysqld_safe
> Password:
> Starting mysqld daemon with databases from /usr/local/mysql/data
> # hier warte ich und warte ... schließlich mache ich
> ^Z
> Suspended

Gibt es kein Startscript, das den Server automatisch im Hintergrund startet?

Ich kenne außer dass es Unix ist nicht viel von MacOS. Das was du da
machst, sieht aber so aus als würdest du den Server im Vordergrund
(innerhalb der aktuellen Shell) starten. Dadurch, dass du den Prozess
suspendest, bekommt er niemals wieder Prozessorzeit zugewiesen.

Versuch den gleichen Aufruf ein weiteres mal und zwar dann, mit einem
abschließenden &. Dann läuft der Prozess im Hintergrund der aktuellen Shell

> #aber kein mysql prompt erscheint!
> [markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
> 161a498 stream 0 0 2175728 0 0 0
> /tmp/mysql.sock
> # dh heißt doch, das der Server läuft??? ABER:

Ja, das heißt, das MySQL läuft und zwar höchstwahrscheinlich mit der
Option --skip-networking. Das "läuft" ist allerdings nur geschummelt, da
MySQL Suspended worden ist.

> [markslap:local/mysql/bin] mareklap% mysql -h localhost -u root -p
> Enter password:
>
>
> ^Z
> # auch hier warte ich und warte ...
> Suspended

Du benutzt gerne ^Z, oder? Wenn du etwas (halbwegs unsanft) beenden
möchtest benutzt man dafür eigentlich ^C. Zu diesem Zeitpunkt hast du
bereits zwei Prozesse suspended. Das heißt, beide Prozesse existieren
noch und warten darauf irgendwann wieder in den Vordergrund geholt zu
werden.

Zusätzlich spricht...

> [markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
> 161a428 stream 0 0 0 161a460 0 0
> /tmp/mysql.sock
> 161a498 stream 0 0 2175728 0 0 0
> /tmp/mysql.sock
> #jetzt habe ich zwei mysql-Server/Prozesse am laufen? Vielleicht mit sudo?
> [markslap:local/mysql/bin] mareklap% sudo mysql -h localhost -u root -p
> Password:
> Sorry, try again.
> Password:
> Enter password:
>
> ^Z
> Suspended
> [markslap:local/mysql/bin] mareklap% netstat | grep "mysql"
> 161a268 stream 0 0 0 161a310 0 0
> /tmp/mysql.sock
> 161a428 stream 0 0 0 161a460 0 0
> /tmp/mysql.sock
> 161a498 stream 0 0 2175728 0 0 0
> /tmp/mysql.sock
> [markslap:local/mysql/bin] mareklap%

.... für meine Theorie, dass du einen Nicht antwortenden, weil keine
Prozessorzeit bekommenden MySQL-Server laufen hast, der innerhalb der
aktuellen Shell in den Hintergrund gestellt worden ist. Die gesamte
Umgebung ist normal eingerichtet und der mysql Client findet den
eingerichteten Socket um sich mit der Datenbank zu verbinden. Leider ist
der MySQL-Daemon gerade suspended und kann daher nicht antworten,
weshalb auch deine Clients endlos auf ihre Antwort warten. Die Ausgabe
von netstat klingt für mich danach, dass du (dritte Zeile) einen
lauschenden Server an /tmp/mysql.sock hast und (oberen beiden Zeilen)
zwei lesende Prozesse (die beiden gestarteten Clients) hast. Alles ist
im Hintergrund.

Foldendes Vorgehen.

Schließe die Shell. Dadurch sollten alle darin gestarteten Programme
beendet werden.

Benutze das normale Vorgehen für MacOS, um MySQL zu starten
(üblicherweise ist das direkte Starten per Shell nur ein Testwerkzeug).
Verbinde dich dann wie von dir schon geschehen mit dem mysql-Client.

Grüße
Kai

Re: mysql-Server Start-Problem

am 21.04.2006 11:01:46 von Sven Paulus

Christian Kirsch wrote:
> Nö. Vermutlich hast Du einfach zwei MySQL-Clients laufen, die auf
> /tmp/mysql.sock lauschen und weil kein Server läuft, warten sie halt e=
wig.

Noe, der Server-Prozess ist schon da, aber er macht nichts, denn er
hat ihn ja zuvor suspended, also im das Aequivalent von kill -STOP
verpasst. Folglich koennen die Clients sich mit dem Socket verbinden,
aber danach passiert nichts mehr. Wuerde gar kein Server vorhanden
sein, kaeme ja sofort eine Fehlermeldung vom mysql-Client.

Re: mysql-Server Start-Problem

am 21.04.2006 11:29:54 von Christian Kirsch

Sven Paulus schrieb:
> Christian Kirsch wrote:
>> Nö. Vermutlich hast Du einfach zwei MySQL-Clients laufen, die auf
>> /tmp/mysql.sock lauschen und weil kein Server läuft, warten sie halt ewig.
>
> Noe, der Server-Prozess ist schon da, aber er macht nichts, denn er
> hat ihn ja zuvor suspended, also im das Aequivalent von kill -STOP
> verpasst. Folglich koennen die Clients sich mit dem Socket verbinden,
> aber danach passiert nichts mehr. Wuerde gar kein Server vorhanden
> sein, kaeme ja sofort eine Fehlermeldung vom mysql-Client.

Stimmt. Man soll ja auch nicht netstat benutzen, um die laufenden
Prozesse zu finden. Schnapsidee.

Re: mysql-Server Start-Problem

am 21.04.2006 23:22:31 von Marek Stepanek

Danke für die Hilfe, wenn sie auch nicht sehr freundlich bei mir angekommen
ist. Aus refman-5.1-en.a4.pdf zum Thema Start nach Installation auf
Macintosh (S. 80):

If you don't use the Startup Item, enter the following command sequence:
shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
(Press Control-D or enter "exit" to exit the shell)

Ich habe nichts anderes getan. Zum Thema laufender MySQL-Server wird zweimal
vorgeschlagen:

shell> netstat -ln | grep mysql

Ok, ich habe es immer noch nicht zum Laufen gebracht, ich fürchte weitere
zynische Kommentare, aber das habe ich versucht:

[markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe &
[1] 471
[markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"
[markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe
Password:
Starting mysqld daemon with databases from /usr/local/mysql/data
bg
^D

hier hängt es und ich komme nicht raus außer mit Control + Z

^Z
Suspended

[markslap:/usr/local/mysql] mareklap% ps | grep "mysql"
490 std R+ 0:00.00 grep mysql
[markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"
161a8f8 stream 0 0 1ef1698 0 0 0
/tmp/mysql.sock
[markslap:/usr/local/mysql] mareklap%

und nun? Neuinstallieren? Newsgroup wechseln? Vielleicht sind die Englisch-
sprachigen etwas freundlicher mit einem Neuankömmling?


marek

Re: mysql-Server Start-Problem

am 22.04.2006 00:05:34 von Kai Ruhnau

Marek Stepanek wrote:
> Ich habe nichts anderes getan. Zum Thema laufender MySQL-Server wird zweimal
> vorgeschlagen:
>
> shell> netstat -ln | grep mysql
>
> Ok, ich habe es immer noch nicht zum Laufen gebracht, ich fürchte weitere
> zynische Kommentare, aber das habe ich versucht:

Wo sind denn zynische Kommentare? Ich hab keine gesehen.

> [markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe &

Ok, jetzt startest du den Server im Hintergrund.

> [1] 471

.... und das ist die PID des Prozesses.

> [markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"

Was ist aus dem -nl für netstat geworden? *Gerade* das -l ist (zumindest
unter meinem Linux) wichtig, da ansonsten keine "Listening" sockets
angezeigt werden sondern nur diejenigen im Zustand "Connected" (die du
bei deiner Sequenz bis hierher ganz sicher noch nicht hast)

> [markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe

Nanu, warum ein zweites mal?

> Password:

Und warum kommt jetzt eine Passwortabfrage?

> Starting mysqld daemon with databases from /usr/local/mysql/data

Leider ist hier nicht mehr zuordnenbar, welcher der zwei gestarteten
mysqld_safe jetzt Ausgaben erzeugt.

> bg

Du solltest laut Anleitung zunächst ^Z drücken, um den mysqld_safe, den
du im Vordergrund laufen hast zu stoppen. Dann bekommst du einen Prompt
deiner Shell an dem du mit der Eingabe von 'bg' den zuletzt gestoppten
Prozess in den Hintergrund schicken kannst. Dort läuft er dann
weiter/wieder.

> ^D

An dieser Stelle schadet es sicherlich nicht, sich damit
auseinanderzusetzen, was ^D eigentlich genau tut. Aber auch dieses
Drücken solltest du machen, nachdem du wieder den Shellprompt vor dir hast.

> hier hängt es und ich komme nicht raus außer mit Control + Z

Ich bin mir sicher, ein ^C tut's auch. Damit produzierst du zumindest
keine Prozessleichen.

>
> ^Z
> Suspended

Jetzt bist du erst an dem Punkt, an dem du mit bg weitermachen sollst.

> [markslap:/usr/local/mysql] mareklap% ps | grep "mysql"
> 490 std R+ 0:00.00 grep mysql

ps ohne Optionen gibt dir zunächst einmal nur die Prozesse, die
unterhalb deiner aktuellen Shell ausgeführt werden. Schau nach, ob es
weitere Optionen gibt (bei mir sind dies a und x) um alle laufenden
Prozesse auszugeben.

> [markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"
> 161a8f8 stream 0 0 1ef1698 0 0 0
> /tmp/mysql.sock

Leider kann ich nichts mit dieser Ausgabe anfangen, da bei meinem
netstat Überschriften stehen, die nicht auf diese Ausgabe passen. Lass
das grep mal weg, bzw. zeig auch mal die Spaltenüberschriften der
netstat-Ausgabe.

> und nun?

Dir fehlen noch einige Grundlagen im Umgang mit einer Shell bzw. im
Umgang mit Prozessen innerhalb einer solchen. Ich weiß allerdings nicht,
wo es Wissen dazu im Zusammenhang mit MacOS gibt. Startpunkte wären die
Manpages (hat MacOS die?) zu bg und fg und zu deiner verwendeten Shell
unter dem Stichwort "Job control".

Danach solltest du dir anschauen, was 'ps' und 'netstat' genau tun, was
es für Optionen gibt und welche Informationen deren Ausgabe enthält.

> Neuinstallieren?

Nö. Das ist ein typische "Lösung" für Windows, nicht für richtige[tm]
Betriebssysteme.

> Newsgroup wechseln?

Wenn du meinst, dass anderswo die Kompetenz im Umgang mit MySQL sitzt...

> Vielleicht sind die Englisch-
> sprachigen

Ich weiß von einigen Leuten hier[tm], die ebenfalls in der englischen
MySQL-Newsgroup unterwegs sind.

> etwas freundlicher mit einem Neuankömmling?

Du bist überempfindlich. Schmink es dir ab, hier[tm] mit Samthandschuhen
angefasst zu werden.


Auch wenn es verpöhnt ist habe ich das Gefühl, du solltest deinen
Rechner nocheinmal neu starten um alle Prozessleichen loszuwerden.
Anschließend solltest *genau* nach dem Handbuch vorgehen und nicht
einige Zeichen oder Optionen hinzunehmen oder weglassen. Zusätzlich
sollte dich jede Abweichung der Rückgabe, die vom vorgeschlagenen
Vorgehen abweicht stutzig machen.


HTH und Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: mysql-Server Start-Problem

am 22.04.2006 10:40:21 von Christian Kirsch

Marek Stepanek wrote:
>
> Danke für die Hilfe, wenn sie auch nicht sehr freundlich bei mir angekommen
> ist. Aus refman-5.1-en.a4.pdf zum Thema Start nach Installation auf
> Macintosh (S. 80):
>
> If you don't use the Startup Item, enter the following command sequence:

Und *warum* benutzt Du nicht das Startup Item? Das ist doch genau für
den Fall da, dass man sich mit Mac OS /Unix nicht auskennt und es eben
Mac-like haben will.

> shell> cd /usr/local/mysql
> shell> sudo ./bin/mysqld_safe
> (Enter your password, if necessary)
> (Press Control-Z)
> shell> bg
> (Press Control-D or enter "exit" to exit the shell)
>
> Ich habe nichts anderes getan.

von 'bg' habe ich bei Dir nichts gelesen.

> Zum Thema laufender MySQL-Server wird zweimal
> vorgeschlagen:
>
> shell> netstat -ln | grep mysql
>
> Ok, ich habe es immer noch nicht zum Laufen gebracht, ich fürchte weitere
> zynische Kommentare, aber das habe ich versucht:
>
> [markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe &
> [1] 471
> [markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"
> [markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe
> Password:
> Starting mysqld daemon with databases from /usr/local/mysql/data
> bg
> ^D
>
> hier hängt es und ich komme nicht raus außer mit Control + Z
>

Mit Control+C kommst Du auch 'raus', und danach hängt nix mehr.

> ^Z
> Suspended
>

Ja, und hier lässt Du eben genau das in der Dokumentation
hingeschriebene 'bg' weg. Folglich - und das hat man Dir hier schon
erklärt - 'hängt' der Prozess. Nichts anderes bedeutet 'Suspended'.

> [markslap:/usr/local/mysql] mareklap% ps | grep "mysql"
> 490 std R+ 0:00.00 grep mysql

ps uax

wäre vermutlich besser - Du startest mysqld als Root (sudo!), wenn Du
aber ps ohne Parameter aufrufst, zeigt es Dir nur Deine eigenen
Prozesse. mysqld läuft aber unter Root.

> [markslap:/usr/local/mysql] mareklap% netstat | grep "mysql"
> 161a8f8 stream 0 0 1ef1698 0 0 0
> /tmp/mysql.sock
> [markslap:/usr/local/mysql] mareklap%
>
> und nun? Neuinstallieren? Newsgroup wechseln? Vielleicht sind die Englisch-
> sprachigen etwas freundlicher mit einem Neuankömmling?
>

Das hier ist kein Schönheitswettbewerb. Du hast Fragen, die vor allem
deshalb entstehen, weil Du *nicht* die auf dem Mac für den Einsatz von
MySQL vorgesehene Methode benutzt. Du schaffst Dir also selber ein
Problem, das Du dann nicht lösen kannst, u.a. deshalb, weil Du weder den
Hinweisen in der Dokumentation konsequent folgst noch denen, die Dir
hier gegeben werden. Was also genau erwartest Du? Nimm das Startup-Item
und alles wird gut. Ich habe Dir schon erklärt, wo Du das findest, die
Benutzung ist 100%-Mac-GUI-einfach.

Re: mysql-Server Start-Problem

am 22.04.2006 10:43:52 von Christian Kirsch

Kai Ruhnau wrote:
> Marek Stepanek wrote:

>
>>[markslap:/usr/local/mysql] mareklap% sudo ./bin/mysqld_safe
>
>
> Nanu, warum ein zweites mal?
>
>
>>Password:
>
>
> Und warum kommt jetzt eine Passwortabfrage?
>
>
wg. sudo. Ich weiß nicht, was passiert, wenn man
sudo blafasel &
macht - vielleicht wird sudo dann in den Hintergrund geschickt, und
nicht blafasel?

Re: mysql-Server Start-Problem

am 23.04.2006 08:24:29 von Marek Stepanek

Danke an alle, die geantwortet haben! Hier mein Fehler:

noch mal aus dem Manual (S. 80: refman-5.1-en.a4.pdf)

shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
^^^^^

peinlich! Aber hier habe ich auf das Prompt von mysql gewartet, das
natürlich nicht kam - das hat mich zwei Wochen gekostet! Peinlich peinlich!
....

Vielleicht eine vernünftigere Zusatzfrage: wie kann ich nachträglich
/Library/StartupItems/MySQLCOM/MySQLCOM
installieren? Ahhh war auch keine vernünftige Frage:

http://dev.mysql.com/doc/refman/4.1/en/mac-os-x-installation .html

jedenfalls noch mal Danke für die Antworten und die Geduld!


marek