Kalle_B: MySQL stoppen

Hallöle,

wie kann ich MySQL 4.1.9 stoppen?

Durch ein falsches SQL- Kommando arbeitet MySQL auf zwei Tabellen, ich komme an diese Tabellen seit 90 min. nicht mehr dran, nicht mal die Strukturanzeige mit PHPMyadmin klappt für diese beiden Tabellen.

Soviel zum Thema multiuser- Fähigkeit. MySQL ist also NICHT multi userfähig. Alles Kopfzerbrechen, was ist, wenn mehrere User gleichzeit zugreifen ist sinnlos. Die Tabellen werden einfach gesperrt bis zum Ende des Kommandos.

Habe die Hotline des Hosters angerufen, die wollen sich bemühen ...

Da mir das gelegentlich noch mal passieren kann, möchte ich gerne selbst stoppen können.

Lieben Gruß, Kalle

  1. Da mir das gelegentlich noch mal passieren kann, möchte ich gerne selbst stoppen können.

    Mh da brauchen wir mehr Informationen. Was für ein Server ist es?
    Wenn es ein Linux Server ist wirst du wahrscheinlich mit dem Kommando

    /etc/init.d/mysql stop

    erfolg haben. Mit "start" kannst du ihn wieder starten und mit "restart" führst du beide Aktionen auf einmal durch.

    Bei einem Windows Server kannst du den Dienst unter Systemsteuerung -> Verwalung -> Dienste

    neustarten...

    Vorausgesetzt du hast direkten Zugriff auf die Maschine. Falls du nur einen Mysql user hast wirst du nicht in der Lage sein den Dienst zu stoppen.

    Grüße Markus

  2. Hallo Kalle,

    Da die MySQL-Datenbank auf dem Server deines Hosters läuft, und nicht auf deinem eignenen, sollte es nicht so einfach möglich sein die Datenbank zu stoppen. Ansonsten könnte es für alle Kunden auf diesem Server lustig werden, wenn jeder nach Lust und Laune einzelne Dienste stoppen könnte.

    Falls Du SSH-Zugriff auf den Server hast, kannst Du mit dem Befehl /etc/init.d/mysql stop die Datenbank beenden.

    Herzliche Grüße aus Weinsberg
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. Hallo Helmut,

      Da die MySQL-Datenbank auf dem Server deines Hosters läuft, und nicht auf deinem eignenen, sollte es nicht so einfach möglich sein die Datenbank zu stoppen. Ansonsten könnte es für alle Kunden auf diesem Server lustig werden, wenn jeder nach Lust und Laune einzelne Dienste stoppen könnte.

      Was geht "alle Kunden" meine Datenbank an?

      Falls Du SSH-Zugriff auf den Server hast, kannst Du mit dem Befehl /etc/init.d/mysql stop die Datenbank beenden.

      Wenn ich das lokal mache (XAMPP auf Windows) komme ich auch an andere DBen nicht mehr dran.

      Kalle

      1. Hallo Kalle,

        MySQL ist an sich keine Datenbank, sondern ein Datenbank-Management-System. Es macht meistens keinen Sinn auf einem Server für jedes Projekt bzw. Kunden ein eigenes DBMS einzurichten, sondern es wird meist ein DBMS (z.B. MySQL) installiert, und für jedes Projekt/Kunde wird eine oder mehrere Datenbanken eingerichtet.

        Was geht "alle Kunden" meine Datenbank an?

        Also geht deine Datenbank sehr wohl auch "alle Kunden" etwas an, wenn Du das ganze DBMS beenden möchtest.

        Wenn ich das lokal mache (XAMPP auf Windows) komme ich auch an andere DBen nicht mehr dran.

        Erklärung siehe oben.

        Der Weg über den Provider ist und war der einzig Richtige.

        Herzliche Grüße aus Weinsberg
        Helmut Weber

        --
        -------------------------------------------
        Mode ist eine Variable, Stil eine Konstante
  3. Moin!

    Durch ein falsches SQL- Kommando arbeitet MySQL auf zwei Tabellen, ich komme an diese Tabellen seit 90 min. nicht mehr dran, nicht mal die Strukturanzeige mit PHPMyadmin klappt für diese beiden Tabellen.

    Soviel zum Thema multiuser- Fähigkeit. MySQL ist also NICHT multi userfähig. Alles Kopfzerbrechen, was ist, wenn mehrere User gleichzeit zugreifen ist sinnlos. Die Tabellen werden einfach gesperrt bis zum Ende des Kommandos.

    MySQL ist selbstverständlich multi-user-fähig. Das Problem ist aber: Wenn ein User (damit bist du gemeint) ein Kommando absetzt, was zwingend das Sperren der Tabellen gegen Zugriffe von Dritten erfordert, und außerdem mangels Optimierung auch noch stundenlang läuft - dann ist halt ein gleichzeitiges Arbeiten auf diesen Tabellen für die Laufzeit des Kommandos unmöglich.

    Daran kann kein Multiusersystem irgendwas ändern.

    Da mir das gelegentlich noch mal passieren kann, möchte ich gerne selbst stoppen können.

    Ich habe einfach den dringenden Verdacht (und meine diesbezüglichen Hinweise hast du letzt erst wieder komplett ignoriert - warum eigentlich?), dass deine Tabelle nicht optimal indiziert ist.

    Sowas wie "stundenlang blockiert" kommt bei normalen Operationen nämlich nur dann vor, wenn kein Index benutzt werden kann. Oder wenn die Operation trotz Index wirklich Stunden zur Vollendung benötigt.

    Im letzteren Fall ist kaum Abhilfe möglich. Dinge, die man zu tun hat, müssen eben erledigt werden.

    Aber wie gesagt: Ich zweifle, dass indexmäßig das Optimum erreicht ist.

    PS: MySQL abwürgen funktioniert für dich nur, wenn du Shellzugriff auf den Server hast.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin Sven,

      MySQL ist selbstverständlich multi-user-fähig. Das Problem ist aber: Wenn ein User (damit bist du gemeint) ein Kommando absetzt, was zwingend das Sperren der Tabellen gegen Zugriffe von Dritten erfordert, und außerdem mangels Optimierung auch noch stundenlang läuft - dann ist halt ein gleichzeitiges Arbeiten auf diesen Tabellen für die Laufzeit des Kommandos unmöglich.

      Nun gut, da ich die Tabellen nicht selbst gesperrt habe, gibt es da offenbar eine mir unbekannte Automatik. Ist ja gut, dass nicht zwei User gleichzeitig buchen können. Aber ich hatte schon gegrübelt, wie ich das "aktiv" verhindern kann.

      Ich habe einfach den dringenden Verdacht (und meine diesbezüglichen Hinweise hast du letzt erst wieder komplett ignoriert - warum eigentlich?), dass deine Tabelle nicht optimal indiziert ist.

      Sorry, habe ich nich zurückgemeldet. Das Vorhandensein der Indexe habe ich nach deinem Hinweis nochmal überprüft. Allerdings (noch) nicht abgefragt, ob die auch verwendet werden.

      Sowas wie "stundenlang blockiert" kommt bei normalen Operationen nämlich nur dann vor, wenn kein Index benutzt werden kann. Oder wenn die Operation trotz Index wirklich Stunden zur Vollendung benötigt.

      Ja, aus Versehen die ORs nicht geklammert wie beim letztenmal.

      PS: MySQL abwürgen funktioniert für dich nur, wenn du Shellzugriff auf den Server hast.

      Der Provider hat die DB gestoppt. Als ich mich kurz bedankt habe, gab er den Hinweis, dass, wenn ich Zugriff auf die Prozesstabelle hätte, ich das auch machen könnte. Habe mich mit Prozesstabellen noch nicht beschäftigt.

      Kalle

  4. Hallo,

    ja klar, mal soeben den MySQL-Server runterfahren und Rebooten oder was? Den WebHoster möchte ich sehen der seinen Usern erlaubt mit dem Server sowas zu machen...

    1. Hallo,

      ja klar, mal soeben den MySQL-Server runterfahren und Rebooten oder was? Den WebHoster möchte ich sehen der seinen Usern erlaubt mit dem Server sowas zu machen...

      Ich will doch gar nicht mit Kanonen auf Spatzen schiessen.

      Unter UNIX kann man mit kill einen einzelnen Prozess abschiessen. Sogar Windows bietet das per Taskmanager. Und ausgerechnet MySQL hat die Devise "Alles oder nichts"?

      Ist das deine Aussage?

      Kalle