De MySQL-database loopt vast vanwege enkele zoekopdrachten.
Hoe kan ik de processen vinden en uitschakelen?
Antwoord 1, autoriteit 100%
Hier is de oplossing:
- Aanmelden bij DB;
- Voer een commando uit
show full processlist;
om het proces-ID met status te krijgen en vraag zelf om de database te laten hangen; - Selecteer de proces-ID en voer de opdracht
KILL <pid>;
uit om dat proces te beëindigen.
Soms is het niet voldoende om elk proces handmatig te beëindigen. Dus daarvoor moeten we een trucje gebruiken:
- Log in op MySQL;
- Voer een query uit
Select concat('KILL ',id,';') from information_schema.processlist where user='user';
om alle processen af te drukken metKILL
commando; - Kopieer het zoekresultaat, plak en verwijder een
|
-teken, kopieer en plak alles opnieuw in de queryconsole. HIT ENTER. BoeM het is klaar.
Antwoord 2, autoriteit 18%
select GROUP_CONCAT(stat SEPARATOR ' ') from (select concat('KILL ',id,';') as stat from information_schema.processlist) as stats;
Kopieer en plak vervolgens het resultaat terug in de terminal.
Iets als:
KILL 2871; KILL 2879; KILL 2874; KILL 2872; KILL 2866;
Antwoord 3, autoriteit 8%
Je kunt zoiets als dit doen om te controleren of een mysql
-proces actief is of niet:
ps aux | grep mysqld
ps aux | grep mysql
Als het dan draait, kun je killall
gebruiken door (afhankelijk van wat alle processen momenteel draaien):
killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe
Antwoord 4
Voor MySQL 8.xx kunt u gewoon MySQLADMIN-shutdown gebruiken. Ik weet niet zeker of dit werkt op oudere versies.
Voorbeeld waar root-wachtwoord is SEYPASS
mysqladmin -u root -pSomePass shutdown
Ook moet u shutdown in /var/log/mysql/error.log
zien