KILLen reicht doch!

| 3 Kommentare | Keine TrackBacks
Diese Weisheit scheint den "Killerspielen" entnommen und so manch ein Pädagoge mag seine Warnung bestätigt finden, dass dem Spielen analoge Verhaltensmuster in anderen Kommunikationsfeldern wirkkräfig werden.

Nun denn:
In letzter Zeit habe ich mich mit init-Skripten beschäftigt und bin über die Konstruktion gestolpert, dass MySQL via mysqladmin shutdown herunter gefahren werden soll.
So portabel diese Konstruktion auch ist, es passiert nichts anderes als bei einem (weniger portablem) kill -TERM (Doku).
IMHO *das* Argument gegen mysqladmin shutdown ist:
ERROR 1040 (HY000): Too many connection
Sprich: mysqladmin kann sich nicht mal mit dem mysqld verbinden um diesen herunter zu fahren.
Beim nächsten mysql-blog wird dann gezeigt, wann obige Pädagogen Recht bekommen und KILL eben doch keine Lösung ist ;-)




Keine TrackBacks

TrackBack-URL: http://linsenraum.de/mt/mt-tb.cgi/97

3 Kommentare

Zitat aus http://dev.mysql.com/doc/refman/5.1/en/too-many-connections.html:

"mysqld actually allows max_connections+1 clients to connect. The extra connection is reserved for use by accounts that have the SUPER privilege"

Wenn ein "mysqladmin shutdown" als User mit dem SUPER Privileg nicht möglich ist, wird anderweitig bereits mit einem derartigen User auf die Datenbank zugegriffen... und eigentlich will man das nicht, zumindest nicht für "normale" Anwendungen... :-)

Yupp,
leider bin ich mit nicht normalen Anwendungen gestraft *snüff*
Aber wie Du zutreffend sagst, will man wohl das zum herunter fahren unnötige SUPER-Privileg dem "shutdown"-User geben um die Wahrscheinlichkeit der "Too many connections" zu reduzieren.
Nur erschließt sich mir - zumindest auf unixoiden Systemen - der Mehrwert von mysqladmin shutdown (im init-Skript) nicht. Für meine Server verwende ich es ja auch noch, aber wird wohl beim nächsten Update rausfliegen :-D

Das hat sich irgendwann in MySQL 5.0 (?) geändert. Vorher war in der Tat 'mysqladmin shutdown' die einzig saubere Art, den MySQL Server runterzufahren. Das hat neben dem connection Problem auch noch weitere, etwa daß man einen MySQL-Account braucht der die nötigen Rechte hat. Debian löst das z.B. dadurch, daß sie bei der Installation von MySQL einen Systemuser anlegen und das (zufällig gewählte) Passwort in /etc/mysql/debian.cnf ablegen. Das hat dann auch den Charme, daß man diesen User für FLUSH LOGS oder CHECK TABLE verwenden kann.

Wenn es rein um das Stoppen des Servers geht: kill -TERM an die mysqld pid reicht aus. Das Signal wird ordnungsgemäß gefangen und bewirkt einen regulären Shutdown.

Jetzt kommentieren