• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Probleme mit dem beenden von MySQL

roemi

Advanced Hacker
Hi,

ich brauch eine Idee.
Ich habe unter 10.1 MySQL installiert.
Wenn ich nun den PC runterfahre, bleibt er bei "Shutting Down service MySQL" hängen.

Zudem ist es mir nicht gelungen MyPHPAdmin bzw. MySQL Admin zu installieren.
Beides endet mit:
"Es sind keine installiebaren Anbieter von ... verfogbar für ..."

Naja, die zweite Aussage sagt wohl das da nix brauchbares auf CD ist.
Aber die erste macht mich kirre, bleibt nämlich nur ein Gewaltstop.
 

Leviathan

Hacker
Probiers mal händisch:

killproc -p /var/lib/mysql/mysqld.pid -TERM /usr/sbin/mysqld

und guck was fuer ne Fehlermeldung kommt.

Evtl. braucht der nur paar minuten um runterzufahren?
 
OP
roemi

roemi

Advanced Hacker
Nein, er steht!!!

Dein string hat ergeben:
Code:
061006 14:25:26 [Note] /usr/sbin/mysqld: Normal shutdown

061006 14:25:26  InnoDB: Starting shutdown...
061006 14:25:28  InnoDB: Shutdown completed; log sequence number 0 43655
061006 14:25:28 [Note] /usr/sbin/mysqld: Shutdown complete

061006 14:25:28  mysqld ended

Sieht gut aus. Mal schaun was er beim runterfahren sagt. Bin nun bis Sonntag weg. Melde mich dann wieder.
 
OP
roemi

roemi

Advanced Hacker
Also,

irgendwas klappt da nicht.

Wenn ich den PC starte, ist laut "rcmysql status" mysql nicht gestartet obwohl er lt. Yast - Runlevel-Editor" mit 3 und 5 versehen ist und läuft.

Starte ich ihn mit "rcmysql start" manuell, nörgelt er über notwendigen HAL (obwohl der auch laufen soll).

Danach geht alles. Der Dienst läßt sich auch über die Console stoppen und starten.

Als ich gestern den PC nun runtergefahren und dafür per Skript den Dienst angehalten habe blieb er trotzdem bei "Shutting Down service MySQL" hängen (obwohl angehalten).

Es ist als wären zwei Dienst in Betrieb. In den Logs ist aber auch nichts zu finden.
 

Leviathan

Hacker
Ich vermute du hast ne Abhängigkeit in deinem rcscript, die er nicht auflösen kann.

Check mal die Datei /etc/init.d/mysql

Da wird bei dir bei Require-XXX der hald drinstehen.

### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $network $remote_fs
# Required-Stop:
# Default-Start: 2 3 5
# Default-Stop:
# Description: Start the MySQL database server
### END INIT INFO

Ansonsten kannst du mal das probieren:
Code:
#! /bin/sh
# Copyright (c) 1995-2000 SuSE GmbH Nuernberg, Germany.
#
# Author: Werner Fink <werner@suse.de>, 1996-2001
#
# /etc/init.d/template
#
#   and symbolic its link
#
# /usr/sbin/rctemplate
#
# System startup script for the cron daemon
#
### BEGIN INIT INFO
# Provides:       mysql
# Required-Start: $network
# X-UnitedLinux-Should-Start:
# Required-Stop:  $network
# Default-Start:  2 3 5
# Default-Stop:   0 1 6
# Description:    startet den mysqld 
### END INIT INFO

# Source SuSE config
.. /etc/rc.status

SERVICE_BIN=/usr/local/mysql/bin/mysqld
test -x $CRON_BIN || exit 5

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     ditto but be verbose in local rc status
#      rc_status -v -r  ditto and clear the local rc status
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num><num>
#      rc_reset         clear local rc status (overall remains)
#      rc_exit          exit appropriate to overall rc status
.. /etc/rc.status

# First reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

case "$1" in
    start)
        echo -n "Starting Service"
# logging

        startproc $SERVICE_BIN --defaults-extra-file=/usr/local/mysql/data/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/syslog.pid --skip-locking  

        rc_status -v
        ;;
    stop)
        echo -n "Shutting down MySQL daemon"
        ## Stop daemon with killproc(8) and if this fails
        ## set echo the echo return value.

        killproc -TERM $SERVICE_BIN

        # Remember status and be verbose
        rc_status -v
        ;;
    restart)
        ## Stop the service and regardless of whether it was
        ## running or not, start it again.
        $0 stop
        $0 start

        # Remember status and be quiet
        rc_status
        ;;
    status)
        echo -n "Checking for Service: "
        ## Check status with checkproc(8), if process is running
        ## checkproc will return with exit status 0.

        # Status has a slightly different for the status command:
        # 0 - service running
        # 1 - service dead, but /var/run/  pid  file exists
        # 2 - service dead, but /var/lock/ lock file exists
        # 3 - service not running

        # NOTE: checkproc returns LSB compliant status values.
        checkproc $SERVICE_BIN
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
        exit 1
        ;;
esac
rc_exit
[/code]
 
OP
roemi

roemi

Advanced Hacker
Oki,

das check ich mal bzw. probiere es.
Was blöd ist, es ist doch eine völlig normale (100 mal gemachte) Standardinstallation von MySQL.

Oder sind unter 10.1 Probleme bekannt.
Ich hab zumindest nichts erwähnenswertes im Netz gefunden (aber nun auch nicht sonderlich intensiv gesucht).
 
OP
roemi

roemi

Advanced Hacker
if test $UID -ne 0; then
exec sudo $0 $*
fi
killproc -p /var/lib/mysql/mysqld.pid -TERM /usr/sbin/mysqld
/sbin/shutdown -h now

Scheinbar liegt es an meinem Skript.
Der ist scheinbar noch mit stoppen von MySQL beschäftigt und fährt bereits runter.

Ich habe nun mehrfach mit "rcmysql stop" MySQL angehalten und dann das System gestoppt. Das scheint zu klappen.

Es gibt doch sicher irgendwas was ich zwischen kill und shutdown setzen kann und das sicherstellt das der shutdown erst nach erfolgreichem beenden erfolgt.
:wink:

Ich suche zwar, bin aber über Hilfe nicht böse :D
 
OP
roemi

roemi

Advanced Hacker
Oki, nochmal ich und immernoch mit dem Sch... MySQL Dienst.

Gestern habe ich (mache ich inzwischen bewußt vorm runterfahren) den SQL-Dienst gestoppt.

Dann habe ich die Meldungen beobachtet die bei Shutdown kommen.

Dabei sind mir folgende Zeilen aufgefallen:

Starting service MySQL Starting INET service (xinetd)
Shutting down service MySQL done
Shutting down xinetd: done

und dann bleibt er hängen. Wahhhhhhhh

Ich stoppe den Dienst damit er beim shutdown wieder gestartet wird?
Und in welchem Zusammenhang steht das mit xinetd?
 

Leviathan

Hacker
ka, nimm das script von mir, das geht und bau per insserv mysql neue Startlinks.

Check /etc/xinetd/ ob da was von mysqld steht.

Gruß Dominik
 
OP
roemi

roemi

Advanced Hacker
Hi,

zum besseren Verständnis:

ich soll meine /etc/init.d/mysql gegen das oben gezeigte Script von
Code:
# Author: Werner Fink <werner@suse.de>, 1996-2001
tauschen?

Und jeden Hinweis auf MySQL aus der /etc/xinetd/ löschen?

Das mach ich :wink:
 
OP
roemi

roemi

Advanced Hacker
Aber Hallo! Wer kommt denn auf die Idee, mysql über xinet laufen zu lassen?

Grundsätzlich erstmal KEINER :evil:

Das ist so durch die Einrichtung eingestellt. Ich versuche gerade zu beheben.
Falls Du dazu was zu sagen hast ...
 
OP
roemi

roemi

Advanced Hacker
Ich habe das Scriot oben genommen (war das wirklich richtig?)
michael:/home/michael # insserv mysql
michael:/home/michael # rcmysql start
/usr/sbin/rcmysql: line 25: ..: command not found
/usr/sbin/rcmysql: line 39: ..: command not found
/usr/sbin/rcmysql: line 42: rc_reset: command not found
Starting Servicestartproc: cannot stat /usr/local/mysql/bin/mysqld: No such file or directory
/usr/sbin/rcmysql: line 66: rc_status: command not found
/usr/sbin/rcmysql: line 107: rc_exit: command not found
michael:/home/michael # rcmysql status
/usr/sbin/rcmysql: line 25: ..: command not found
/usr/sbin/rcmysql: line 39: ..: command not found
/usr/sbin/rcmysql: line 42: rc_reset: command not found
Checking for Service: checkproc: cannot stat /usr/local/mysql/bin/mysqld: No such file or directory
/usr/sbin/rcmysql: line 100: rc_status: command not found
/usr/sbin/rcmysql: line 107: rc_exit: command not found

Check /etc/xinetd/ ob da was von mysqld steht.

Steht nicht! Buhu

Was mache ich falsch? :(
 

cero

Guru
Hast Du mal unter Yast - Netzwerkdienste - Netzwerkdienste (xinetd) geguckt, was dort
zu MySQL steht. Eventuell dort mal abschalten.
 

panamajo

Guru
roemi schrieb:
Damit wird MySQL erst gestoppt und dann runtergefahren.

Was ist der Unterschied zwischen stoppen und runterfahren?

roemi schrieb:
Starte ich ihn mit "rcmysql start" manuell, nörgelt er über notwendigen HAL (obwohl der auch laufen soll).

Ich kann beim SuSE 10.1 /etc/init.d/mysql nichts entdecken das eine Abhängigkeit zu HAL impliziert. Kann es sein dass du MySQL aus anderen Quellen installiert hast? Das würde auch die Probleme beim Start/Stop erklären, läuft bei mir nämlich auf 4 Servern ohne Probleme...

roemi schrieb:
Gestern habe ich (mache ich inzwischen bewußt vorm runterfahren) den SQL-Dienst gestoppt.

Dann habe ich die Meldungen beobachtet die bei Shutdown kommen.

Dabei sind mir folgende Zeilen aufgefallen:

Starting service MySQL Starting INET service (xinetd)
Shutting down service MySQL done
Shutting down xinetd: done

Wenn du MySQL vorher bereits gestoppt hast, warum fährt er dann bei einem shutdown erst wieder hoch? In welchem Runlevel arbeitest du?

roemi schrieb:
Ich habe das Scriot oben genommen

Ja, sehr spaßig ... das funktioniert so natürlich überhaupt nicht wenn dein mysqld nicht /usr/local/mysql/bin/mysqld ist. Dies moniert das Skript ja auch.
 
OP
roemi

roemi

Advanced Hacker
Die oben Fragen kann ich dir nicht beantworten.
Ich habe eine Installation gemacht wie ich sie immer mache.

Also keine Ahnung wieso er mich ärgert.

Vielleicht setzte ich das System mal neu auf.

Ja, sehr spaßig ... das funktioniert so natürlich überhaupt nicht wenn dein mysqld nicht /usr/local/mysql/bin/mysqld ist. Dies moniert das Skript ja auch.

Ich habe die Meldung auch nur gepostet um zu zeigen das es einen Unterschied zwischen dem was "normal" ist und wie es bei mir ausschaut!

Ok, das
Was mache ich falsch?
hätte ich auch so verstanden :oops:

Bezog sich aber wirklich auf das ganze Problem.
 
OP
roemi

roemi

Advanced Hacker
Sodele, nach erfolgtem Umbau sehen die Meldungen nun so aus
michael:/home/michael # rcmysql status
Checking for Service: running
michael:/home/michael # rcmysql stop
Shutting down MySQL daemon done
michael:/home/michael # rcmysql start
Starting Service061012 21:41:52 InnoDB: Started; log sequence number 0 43655
061012 21:41:52 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/lib/mysql/mysql.sock' port: 3306 SUSE MySQL RPM
done
michael:/home/michael # rcmysql status
Checking for Service: running
michael:/home/michael #

Schaun wir mal wie er sich verhält und ich werde berichten.
 
Oben