Я заметил, чтоmysqldвсегда работает в фоновом режиме. Он запускается при каждой загрузке и даже после того, как я его убиваю, он перезапускается. Я удалил все, что связано с mysql, с помощью:
sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
Однако он все еще отображается в ps -aux
. Что это значит? Кроме того, что означает пользователь 27 в выводе ps -aux ? Я не помню, чтобы создавал пользователя 27.
Объяснение: На самом деле это было из-за контейнера SQL Docker, работающего в фоновом режиме.
решение1
Похоже, у вас запущен Docker-контейнер, в котором находится mysqld.
решение2
Я обнаружил, что mysqld запущен на моей системе и потребляет более 3 ГБ оперативной памяти.
Я начал расследование со следующего:
sudo service --status-all
В списке запущенных элементов был указан mysql (который я также видел в системном мониторе).
В моей системе не установлен Docker.
Затем я взглянул на скрипт сервиса:
$ cat /etc/init.d/mysql
Вот частичный листинг этого скрипта:
#!/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
Но откуда это взялось? Может, я установил что-то еще, что добавило mysql в мою систему? Ничего, что я помню, не делало этого, и также почему он запускается, когда я запускаю свою машину?
Я искал программное обеспечение Snaps и Ubuntu, а также различные другие места, и, похоже, я не устанавливал Mysql самостоятельно.
Может быть, установка Java EE или что-то в этом роде? Вероятно, это все.
Я выполнил следующее:
sudo systemctl --all list-unit-files --type=service
Я вижу следующее в списке для mysql:
UNIT_FILE STATE VENDOR PRESET
mysql.service enabled enabled
Затем мне потребовалось отключить службу при запуске, поэтому я выполнил следующую команду:
sudo systemctl disable mysql.service
Я снова запустил проверку и увидел, что он действительно отключен:
UNIT_FILE STATE VENDOR PRESET
mysql.service disabled enabled