Включенная страница руководства sinit.8, а также README очень меня объясняют. Тем не менее, быстрое введение для вас, когда я загляну в исходный код:
/ sbin / init
запускается ядром как pid 1 / bin / rc.init
скрипт как отдельный дочерний процесс /bin/rc.init
как отдельный процесс, таким образом, /bin/rc.init
содержат команды чтобы инициализировать систему за пределами этой точки /bin/rc.shutdown
как poweroff
имя скрипта, а SIGINT заставляет init запустить тот же скрипт с именем reboot
, чтобы различать режимы работа внутри скрипта. Обратите внимание, что эти два сигнала - это только те, которые init слушает, включая SIGKILL и SIGSTOP, которые он проигнорирует. И только суперпользователю разрешено посылать сигналы в init.SIGINT генерируется ядром, когда вы нажимаете Ctrl-Alt-Delete, но только когда это сказано (есть специальный системный вызов, который обычно выполняет процесс init, чтобы разрешить отправку SIGINT в cad) Итак, из этого sinit не предоставляет :
Однако sinit - это симпатичный милый маленький init, который работает. Бьюсь об заклад, это очень хорошо для встроенных систем, а также для простых настольных систем без суеты современных настольных сред.
1) вы можете попробовать перенастроить mysql-сервер:
sudo dpkg-reconfigure mysql-server
2) проверьте, есть ли у вас debian-sys-maint passwd
cat /etc/mysql/debian.cnf
и проверьте:
user = debian-sys-maint
password = xxxxGx0fSQxxGa
debian-sys-maint имеет все привилегии на сервере mysql
3) если это не решает проблему, вы можете сбросить пароль:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NewPasswd") where User='root';
mysql> flush privileges;
mysql> quit
sudo service mysql stop
sudo service mysql start
mysql -u root -p
Я столкнулся с парой проблем с принятым ответом.
Первый раз, когда я запустил sudo service mysql stop
, служба не остановилась, и я этого не осознавал. Выполните ps -fe | grep mysql
. Поэтому убедитесь, что процесс завершен, прежде чем запускать любую из следующих команд. После нескольких попыток я убил его с помощью sudo kill -KILL <mysqld process id>
.
Затем, после запуска обновления sql, снова service mysql stop
не сработало. Поэтому проверьте свой идентификатор процесса с помощью ps -fe | grep mysqld_safe
и используйте sudo kill -TERM <process id>
, как указано ниже. Если у вас более одного процесса, используйте тот, у которого самый низкий идентификатор.
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NewPasswd"), plugin='mysql_native_password', host='%' where User='root';
mysql> flush privileges;
mysql> quit
sudo kill -TERM <mysqld_safe process id>
sudo service mysql start
mysql -u root -p
это сработало для меня, я просто изменил строку ниже из
mysql> update user set password=PASSWORD("NewPasswd") where User='root';
в
mysql> update user set password=PASSWORD("NewPasswd"), plugin='mysql_native_password', host='%' where User='root';
После новой установки MySQL 8.0.24 на Ubuntu 20.10 мне не удалось войти в систему с
mysql -u root
, что приводит к
Error 1698 (28000): Access denied for user 'root'@'localhost'
Однако мне удалось войти с помощью
sudo mysql -u root
Я думаю, это потому, что суперпользователь в Linux является пользователем root.