Warum läuft mysqld immer im Hintergrund?

Warum läuft mysqld immer im Hintergrund?

Ich habe bemerkt, dassmysqldläuft immer im Hintergrund. Es wird bei jedem Systemstart gestartet und selbst nachdem ich es beendet habe, wird es neu gestartet. Ich habe alles, was mit MySQL zu tun hat, entfernt mit:

sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean

Es wird jedoch immer noch in angezeigt ps -aux. Was bedeutet das? Und was bedeutet Benutzer 27 in der Ausgabe von ps -aux? Ich kann mich nicht erinnern, einen Benutzer 27 erstellt zu haben.

Erläuterung: Tatsächlich lag es an einem im Hintergrund laufenden SQL-Docker-Container

Antwort1

Es hört sich an, als ob Sie einen Docker-Container ausführen, der mysqld enthält.

Antwort2

Ich habe festgestellt, dass mysqld auf meinem System läuft und über 3 GB RAM verbraucht.

Ich begann mit der Untersuchung wie folgt:

sudo service --status-all

Dabei wurde MySQL als eines der ausgeführten Elemente aufgeführt (was ich auch im Systemmonitor gesehen habe).

Ich habe Docker nicht auf meinem System installiert.

Ich habe mir dann das Serviceskript angeschaut:

$ cat /etc/init.d/mysql

Hier ist eine unvollständige Auflistung für dieses Skript:

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          mysql
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop the mysql database server daemon
# Description:       Controls the main MySQL database server daemon "mysqld"
#                    and its wrapper script "mysqld_safe".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}

test -x /usr/bin/mysqld_safe || exit 0

. /lib/lsb/init-functions

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
CONF=/etc/mysql/my.cnf
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"

# priority can be overriden and "-s" adds output to stderr
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"

# Safeguard (relative paths, core dumps..)
cd /
umask 077

# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
# as many admins e.g. only store a password without a username there and
# so break my scripts.
export HOME=/etc/mysql/

## Fetch a particular option from mysql's invocation.
#
# Usage: void mysqld_get_param option
mysqld_get_param() {
    /usr/sbin/mysqld --print-defaults \
        | tr " " "\n" \
        | grep -- "--$1" \
        | tail -n 1 \
        | cut -d= -f2
}

## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
  # check for config file
  if [ ! -r /etc/mysql/my.cnf ]; then
    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
  fi

Aber woher kommt das? Hat irgendwas, das ich installiert habe, MySQL zu meinem System hinzugefügt? Soweit ich mich erinnere, ist das nicht passiert, und warum startet es, wenn ich meinen Rechner starte?

Ich habe in der Snaps- und Ubuntu-Software und an verschiedenen anderen Stellen nachgeforscht und es scheint, dass ich Mysql nicht selbst installiert habe.

Vielleicht eine Installation von Java EE oder so etwas? Das ist es wahrscheinlich.

Ich habe Folgendes ausgeführt:

sudo systemctl --all list-unit-files --type=service

Für MySQL sehe ich Folgendes aufgelistet:

UNIT_FILE                        STATE           VENDOR PRESET
mysql.service                    enabled         enabled

Dann musste ich den Dienst beim Start deaktivieren, also habe ich den folgenden Befehl ausgeführt:

sudo systemctl disable mysql.service

Ich habe die Prüfung erneut ausgeführt und gesehen, dass es tatsächlich deaktiviert war:

UNIT_FILE                        STATE           VENDOR PRESET
mysql.service                    disabled         enabled

verwandte Informationen