Я хочу установить mysql-сервер снова, но я не уверен, как сделать это. Я попробовал sudo dpkg-reconfigure mysql-server
но это ничего не делает.
вывод PS aux | grep mysql:
matthew 9288 0.0 0.0 13136 1044 pts/1 S+ 19:02 0:00 grep --color=auto mysql
Пакет mysql-server
сам по себе не реконфигурируем: как отмечалось в apt show mysql-server
, это просто пакет зависимостей:
This is an empty package that depends on the current "best" version of
mysql-server (currently mysql-server-5.7), as determined by the MySQL
maintainers. Install this package if in doubt about which MySQL version
you need. That will install the version recommended by the package
maintainers.
Вы можете увидеть, что фактический реконфигурируемый сервер Пакет выполняется путем запроса базы данных debconf
:
$ debconf-show --listowners | grep mysql
mysql-server-5.7
Итак, в моем случае это должно быть
dpkg-reconfigure mysql-server-5.7
Вы остановились mysql
/mysqld
?
sudo systemctl stop mysql
Необходимо попросить, чтобы система запустила, остановила или перезапустила mysql
. Это сделано с помощью systemctl
в более новых системах, или service
в более старых системах. Можно найти больше деталей здесь.
Первое требование для рабочего MySQL состоит в том, чтобы понять, как администрировать систему Linux. Используйте и понимание systemctl
очень важно.
Теперь, попытайтесь работать sudo dpkg-reconfigure mysql-server
. Необходимо удостовериться, что никакой процесс MySQL не работает для реконфигурирования его. Если Вы продолжаете сталкиваться с проблемами, посмотрите, существует ли какое-либо другое выполнение процессов и kill
их:
sudo ps aux | grep mysql
mysql 8681 1.9 8.6 1350976 175128 ? Sl 18:52 0:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
matthew 8788 0.0 0.0 13136 1044 pts/1 S+ 18:52 0:00 grep --color=auto mysql
sudo kill 8681
Необходимо всегда использовать systemctl
если это возможно, и только уничтожают сервис этот путь, если Вы действительно должны. Это по многим причинам, включая для здоровья Вашей базы данных. Путем отказа использовать systemctl
одна возможная проблема будет состоять в том что файл PID ( /run/mysqld/mysqld.pid
) может не быть правильно очищен, мешая Вам запускать сервис снова.
ответ steeldriver имеет недостающую часть.