ИЗМЕНИТЬ, он начал работать сам по себе. Я не вижу, как удалить или отметить этот вопрос.
Mariadb работает на CentOS 7
$ ps aux | grep mysqld
mysql 4249 0.0 9.0 841448 89576 pts/0 Sl 12:25 0:00 /usr/libexec/mysqld ...snip...
$ mysqladmin ping && echo ok
mysqld is alive
ok
Но когда я пытаюсь это остановить.
$ sudo systemctl stop mariadb.service && echo ok
ok
Бег systemctl status mariadb
до и после показывает, что эта строка была зарегистрирована:
Nov 17 13:02:31 sk-test1 systemd[1]: Stopped MariaDB database server.
Тем не менее, приведенная выше команда ps / ping показывает, что mysqld все еще работает с тот же PID.
Почему служба не останавливается?
Когда возникает условие, когда MySQL или MariaDB небезопасно завершать работу в безопасном режиме, он просто зависает. Это происходит со мной каждый раз, когда у меня заканчивается место на диске.
Лучший способ решить эту проблему - добавить больше дискового пространства, но если это невозможно, я останавливаю все приложения, а затем убиваю службу. Вы потеряете некоторые ожидающие транзакции, но целостность базы данных должна быть в порядке, если вы используете движок XtraDB или InnoDB.
XtraDB используется по умолчанию для MariaDB. InnoDB используется по умолчанию для последней версии Oracle MySQL и сервера Percona.
Изменить 1: Чтобы отключить службу MariaDB или Mysql, вы можете использовать mysqladmin shutdown
. Или просто запустите: kill -SIGTERM pid-of-mysqld-process
. Смотрите также: https://mariadb.com/kb/en/mariadb/shutdown/
Изменить 2:
Если вы перезапустите MySQL во время операции записи (INSERT, UPDATE, DELETE, ALTER), механизм InnoDB откатит транзакцию. Вы можете увидеть прогресс отката с помощью show engine innodb status
. Смотрите ниже.
Проверьте, какие запросы выполняются медленно. Следующая команда возвращает все запущенные запросы, которые были запущены 10 секунд или более назад.
mysql -e "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND<>'Sleep' and TIME > 10"
Если у вас медленный запрос, использующий движок InnoDB, вы можете увидеть, как он продвигается:
mysql -e "show engine innodb status \G"|less
Чтобы проверить статус MySQL или MariaDB
systemctl status mariadb
Чтобы остановить MySQL / MariaDB
systemctl stop mariadb